~/.ssh/config ディレクトリには次のものがあります。
Host 12.34.56.78
IdentityFile ~/.ssh/my_identity_file
12.34.56.78でsshすると、すべてがうまくいきます。 「my_identity_file」のパスワードの入力を求められたら、サーバーに接続できます。
しかし、時にはSSHを介して他のサーバーに接続したい場合があります。しかし、サーバーに関係なくこれを行うと:
ssh [email protected]
また、「my_identity_file」のパスワードを求めるメッセージも表示されました(サーバーのIPアドレスが異なる場合も同様)。すべてのサーバーにこのファイルセットの公開鍵がないため、これは非常に迷惑です。パスワードを使用して別のサーバー(以前の共有ホスティングアカウント)に接続したいのですが、今は接続できません。
1つのサーバーでのみキー認証を使用し、~/.ssh/configにリストされていないサーバーでは、デフォルトでパスワードを引き続き使用するにはどうすればよいですか?
答え1
構成ファイルのホストは、実際にサーバーを識別する短い名前です。ホスト名またはIPで識別するには、ホスト名を使用する必要があります。特定のユーザーを制限することもできます。
次のことを試してください
Host myhost
Hostname a.b.c.d
User myuser
Identityfile my-identity-file
指定されたホスト名には対応するキーファイルのみを使用する必要があり、ホスト名を指定しない場合はそのユーザーも使用されます。
答え2
復号化された秘密鍵をメモリに保存し、必要に応じてパスワードを要求しないようにする「ssh-add」などのツールを使用すると便利です。
したがって、他のホストにSSH経由で接続したい場合は、
1/公開鍵がある場合、SSHは自動的にユーザーを認証します。
2/公開鍵がない場合、sshはその鍵を使用してユーザーを認証しようとし、失敗し、パスワードを要求します。
しかし、Etan Reisnerが言ったように、デフォルトの名前でIDファイルを呼び出したようです。それ以外の場合、sshはそのファイルを使用しようとしません。 SSHエージェントを使用したくない場合は、秘密鍵の名前を変更してください。