2つのLinuxシステム間のSSH - 公開鍵が拒否されました。

2つのLinuxシステム間のSSH - 公開鍵が拒否されました。

あるUbuntuボックスから別のUbuntuボックスにリンクしようとしています。どちらも Google Cloud Platform のインスタンスであり、内部 IP と外部 IP を持っています。

lbox-aからlbox-bに接続しようとしています(lbox-aとlbox-bはホスト名です)。

lbox-aでは、次のコマンドを使用してhduser1のSSHキーを生成しました。

 ssh-keygen -t rsa -P ""

lbox-bに公開鍵を追加する場合

hduser1@lbox-a:~$ ssh-copy-id -i $HOME/.ssh/id_rsa.pub hduser1@lbox-b

エラーが発生します。

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/hduser1/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
Permission denied (publickey).

交換してみましたユーザー1@lbox-bにはroot、既存のユーザー、存在しないユーザーがあります。そしてlbox-b内部IPと外部IPを代わりに使用してみました。

時にはタイムアウトエラーが発生することがあります。

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: 
/home/ubuntu/.ssh/id_rsa.pub
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: ERROR: ssh: connect to host linuxbox-2 port 22: Connection timed out

ご案内ください。権限の問題なのか、ポートの問題なのか、Google Cloud Platform でホストされている他の問題なのかはわかりません。

ありがとうございます!

答え1

失敗の理由ssh-copy-idは、IDを渡すためにパスワード確認を有効にする必要があるためです。ユーティリティのマニュアルページから:

ssh-copy-idはssh(1)を使用してリモートシステムにログインするスクリプトです(おそらくログインパスワードを使用するため、パスワード確認を有効にする必要があります)。

IDがコピーされていないため、他の方法では安全に認証できません。最初に認証せずにコマンドを実行すると、誰でも自分のIDをサーバーに追加できます。

パスワード認証を有効にしたくない場合は、IDのコピーに成功した後にパスワード認証を無効にできます。または、2つのコンピュータ間のIDを手動でコピーして自分自身に貼り付けることができ、ユーティリティを使用する必要はありませんssh-copy-id

関連情報