web-dev-qa-db-ja.com

SSHホストベースの認証:SSHクライアントが特定のキーの場所を使用するように強制するにはどうすればよいですか

Linuxのmanページ ssh ホストベースの認証はSSH server must be able to verify the client's Host key (see the description of /etc/ssh/ssh_known_hosts and ~/.ssh/known_hosts, below) for login to be permitted.として機能します。これは~/.ssh/known_hostsにクライアントがアクセスするSSHサーバーのホストキーが含まれていることを理解しています。

ID秘密鍵が~/.ssh/id_rsa~/.ssh/id_dsaから読み取られる鍵ベースの認証では、鍵~/.ssh/known_hostsのみを使用して、ホストベースの認証で異なる場所にある鍵を強制的に検索するにはどうすればよいですか。

キーベースの認証。 ssh -i /new/path/to/id_rsa <server IP>を使用して別の場所を指すことができ、ホストベースの認証でどのように実行可能かを知りたいと思います。

前もって感謝します!

2

known_hostsファイルは、接続先のリモートホストのIDを確認するためにsshクライアントによって使用されます。ホストベースの認証では、remoteサーバーはクライアントホストのIDを確認する必要があります。これは、ローカルのknown_hostsファイルとは関係ありません。

ホストキーは、/etc/ssh/ssh_Host_rsa_keyまたは/etc/ssh内の他の同様の名前のファイルの1つから取得されます。 /etc/ssh/sshd_configHostKeyディレクティブを使用して、ホストキーの場所を設定します。

これは設定できないことに注意してください接続ごと。これは、ホストを識別する資格情報です。

2
larsks

ホストベースの認証では実行できません。ホストベースの認証は、ホストキーの場所がハードコードされているssh-keysignに依存しています。特に、openssh-6.2p1の場合、ssh-keysign.cには次のものがあります。

170   key_fd[i++] = open(_PATH_Host_DSA_KEY_FILE, O_RDONLY);
171   key_fd[i++] = open(_PATH_Host_ECDSA_KEY_FILE, O_RDONLY);
172   key_fd[i++] = open(_PATH_Host_RSA_KEY_FILE, O_RDONLY);
0
Mark Wagner