known_hosts
ホスト名がすでにファイルに存在することを確認する必要があります。
通常私は次のようにします:
ssh-keygen -H -F hostname
しかし、これはこの特別なケースでは私には適していないようです。次のようにポート2102を使用してホストに接続します。
ssh user@myhost -p 2102
known_hosts
ファイルにホスト名を追加するように求められ、そうだと答えました。その後、私は実行しましたが、ssh-keygen -H -F myhost
空の結果を受けました。
さらに悪いことはハッシュされているknown_hosts
ということです。
これはポート22で完全に機能するため、ログインしてssh user@myotherhost
既知のホストを保存して実行すると、ssh-keygen -H -F myotherhost
ファイルから正確な行を受け取ります。
それでは、ポート2102を使用するようにコマンドをどのように調整しますか?
答え1
[hostname]:2121
ファイルに保存されるので、次の形式を使用できますknown_hosts
(角かっこを使用する必要があります!)。
ssh-keygen -H -F "[hostname]:2121"
概念証明(最小テストケース記録):
$ echo "[hostname]:2121 ssh-rsa AAA...==" > known_hosts
$ ssh-keygen -Hf known_hosts
known_hosts updated.
Original contents retained as known_hosts.old
WARNING: known_hosts.old contains unhashed entries
Delete this file to ensure privacy of hostnames
$ ssh-keygen -H -F "[hostname]:2121" -f known_hosts
|1|R21497dX9jN052A92GSoVFbuTPM=|lRtIr6O564EaFG0SsIulNAWpcrM= ssh-rsa AAA...==
ホスト名の代わりにIPアドレスを使用する必要がありますが、通常は機能します。