IPアドレスまたはホスト名に基づいてSSHクライアントのさまざまな構成

IPアドレスまたはホスト名に基づいてSSHクライアントのさまざまな構成

~/.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エージェントを使用したくない場合は、秘密鍵の名前を変更してください。

関連情報