SSHサーバーフィンガープリントはどこで生成/保存されますか?


44

openssh-serverをインストールし、でキーを作成しましたssh-keygen。次に、ローカルポートフォワーディングを使用してテストしましたssh -L 8080:www.nytimes.com:80 127.0.0.1。ただし、このコマンドが提供するキーフィンガープリントは、実行時に取得するキーフィンガープリントではありませんssh-keygen -l。.sshディレクトリを削除しても、同じフィンガープリントが取得されますが、これはで作成したものではありませんssh-keygen。システムに別のキーがありますか?このキーはどこにありますか?openssh-serverで使用するこのキーを選択するにはどうすればよいですか?

回答:


59

SSHセッションを作成すると、2つの異なるキーペア(各ペアのフィンガープリント付き)が関係します。1つはユーザーのキーで、これはに保存されてい~/.sshます。ユーザーのSSHキーIDは、別のコンピューターにログインするための資格情報として使用される場合があります(キーベースのログインをセットアップした場合)。

もう1つはSSHサーバーのキーです。これは、初めて別のサーバーに接続するときに指紋を見るキーです。このキーのIDは、目的のSSHサーバーに確実にログインするために使用されます。これは、攻撃者のマシンに誤ってログインしようとしないため、パスワードを使用している場合に重要です。入力すると、攻撃者はパスワードを取得します。その後、攻撃者はログインしていると思ったマシンにログインできます。に!(これは"中間者攻撃"として知られていますSSHサーバーがログイン時に自身を識別するために使用するキーは、に/etc/ssh/あり、通常はのような名前が付けられていssh_host_rsa_keyます。

実際に、SSHサーバーがファイル内のキーを探す場所を設定で変更できます。/etc/ssh/sshd_configHostKey /path/to/host/key

デフォルトでssh-keygenは、現在のユーザーのキーを作成します。デフォルトでは、キーはに保存され~/.sshます。ユーザーキーとサーバーキーの形式は同じです。違いは、それらが配置される場所と、それらを指すディレクティブ/etc/ssh/sshd_configがあるかどうかHostKeyです。openssh-serverパッケージをインストールすると、サーバーが使用するキーが自動的に生成されます。それが、未知の指紋を持つ鍵の出所です。SSHサーバーの(RSA *)キーのフィンガープリントを表示したい場合は、を実行できますssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub

*異なる暗号化アルゴリズムがあります。それぞれが異なるキーを使用します。一般的なものは、DSA(弱い)、RSA(古いデフォルト)、およびECDSA(新しいデフォルト)です。


1
「sshフィンガープリントの設定」のGoogleの結果は、それらの用語が技術的に間違っていても、驚くほど悪いです。彼らの間でこれを見つけたのは良いことです。
バートヴァンヒューケロム

4
これをありがとう。注:ssh-keygenを公開鍵に向ける場合、「sudo」は不要です。それは:ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pubです。また、私のインストールでは、sshデーモンが使用していたのはRSAキーではなくECDSAキーであったため、実際に実行する必要があったのはでしたssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub
ジョンクレメンツ

古いハードドライブから公開キーを取得して、新しいインストールで使用し、/ etc / sshでそれらを上書きすることに問題はありますか?鍵は鍵ですよね?
アダム

@Adamそれをすることに問題はないと思う。これにより、リモートでログインしてキーが変更された場合(新しいキーを再インストールした場合に発生します)
-Azendale

3
ssh14.04から初めてホストに接続すると、MD5フィンガープリントが表示されます。ssh-keygen16.04でMD5フィンガープリントを表示するには、-E md5オプションを使用する必要があります。
ヤルノ

15

SSHホストキーはに保存されますが/etc/ssh/、通常は選択する必要はありません。これらのキーは、openssh-serverパッケージがインストールされたときに生成されました。

ssh-keygen -l -f /etc/ssh/ssh_host_key.pub公開鍵ごとにこれを繰り返す必要がありますが、鍵のフィンガープリントをリストできます。

 


7

ssh-keygenサーバーでSSHフィンガープリントを生成しません。SSHサーバーによって生成されます。ssh-keygenプレーンテキストのパスコードをサーバーに送信することなく、後でSSHサーバーにアクセスするために使用できるシステムの公開/秘密キーペアを作成します。

サーバーの指紋は、生成された公開/秘密キーペアの指紋としては明らかに表示されません。これらは互いに独立しているためです。


3
サーバーのsshキーを生成できる必要があることに注意してください(言うこととは逆)が、その目的で使用されるように適切な場所に配置する必要があります。
アゼンデール
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.