1つの特定のホストに接続するときに、id_dsaが〜/.sshに保存されないことをどのように納得させることができますか。
明らかな質問はその理由です。答えは、このキーはより機密性が高く、もう一方が自動化に使用されている間はパスワードで保護する必要があるということです。
これはプログラミングの問題ではありませんが、プログラミングソリューションが必要であることを知っても驚くことではありません。
奇妙なことに、これを30分前に友人と話し合ったところです。
~/.ssh/config
IdentityFile ~/.ssh/ident/%r@%h IdentityFile ~/.ssh/id_rsa IdentityFile ~/.ssh/id_dsa
これにより、オプションが上から下に実行されるため、フォールバック パターンの使用が非常に簡単になります。
次に、「Bob@someHost」の特定のキーを指定するには、ファイルを作成するだけです
~/.ssh/ident/Bob@someHost
そして、そのホストにログインするときに最初にそれを試みます。
ファイルが見つからない場合、またはキーが拒否された場合、次のファイルが試行されます。この場合、
~/.ssh/id_rsa
この手法の利点は、別のホストを追加するたびに新しいエントリを追加する必要がないことです。適切な場所にキーファイルを作成するだけで、残りは自動的に行われます。
.ssh/config
で、次のように設定します。
Host somehost
IdentityFile /path/to/extra_secret_key
IdentityFile
に設定されているホストが 1 つ~/.ssh/iddsa_aux
ありますが、パラメーターは任意のパス名を受け入れる必要があります。
sshのmanページから:
-i identity_file
Selects a file from which the identity (private key) for RSA or
DSA authentication is read. The default is ~/.ssh/identity for
protocol version 1, and ~/.ssh/id_rsa and ~/.ssh/id_dsa for pro-
tocol version 2. Identity files may also be specified on a per-
host basis in the configuration file. It is possible to have
multiple -i options (and multiple identities specified in config-
uration files).