web-dev-qa-db-ja.com

known_hostsファイルに公開鍵を追加します

サーバーAからサーバーBのknown_hostsファイルに公開鍵をコピーしようとしています。これらは両方ともLinuxサーバーです。最初は、公開鍵ファイルを開いて、その内容をknown_hostsファイルにコピーすることを考えていましたが、それは正しい方法ではないと思います。誰かがそうするための正しい方法を知っていますか?

公開鍵の形式はssh-rsa AADGD...

誰か助けてもらえますか?

ありがとう!

14
Trung Tran

私は SuperUser で数日前にほぼ同様の回答をしました。重要な部分:

  • 形式が異なります
  • 各サーバーには異なるホストキー(タイプ)があります(実際に使用されているものを貼り付けてください)
  • がある ssh-keyscan書式を作成できます

それ以外の場合は、キーにサーバーIPアドレスをプレフィックスするだけで(カンマの後にホスト名を追加することもできます)、行末からコメントを削除すれば問題ありません。フォーマットは次のようになります。

11.22.33.44 ssh-rsa AADGD...

もう1つ注意してください。HashKnownHosts yes(DebianとUbuntuはそうです)、再ハッシュする必要がありますknown_hosts といった:

ssh-keygen -Hf ~/.ssh/known_hosts
7
Jakuje

これが私がやった方法です。

  1. ホストサーバーでキーを生成します。以下のコマンドを使用します。

* ssh-keyscan -t rsa full-server-name

Command line and output

  1. 次に、強調表示されているセクション(写真)をコピーし、このキーをソースサーバーの「known_Host」ファイルに追加します。もちろん、このファイルの場所は環境によって異なる場合があります。
4
user2373210

この問題にぶつかりましたが、ここに私がどのようにアプローチしたかを示します。

時間が経つにつれて、ファイルを機械的にコピーします

ssh-keyscan server-name >> ~/.ssh/known_hosts

.ssh/known_hostsに重複したエントリがありました。

他の手動の方法では、.sshディレクトリがまだ存在していなかったなど。

私はsshで処理することにしました:

ssh -o StrictHostKeyChecking=no server-name ls

-o StrictHostKeyChecking=noオプションは自動的に「はい」と答えます

The authenticity of Host 'server-name (12.345.678.900)' can't be established.
RSA key fingerprint is XXXXXXX.
Are you sure you want to continue connecting (yes/no)?

メッセージ(知らないマシンにランダムに接続することに関するすべてのセキュリティ警告をここに挿入してください)。

lsコマンドは、実行時にSSHを強制的に切断するfluffコマンドです。任意の綿毛コマンドに変更できます。

sshが.ssh dir(必要な場合)、キーのコピーを1つだけ追加するなど。

プラットフォーム:macOS 10.14

2
JS.