ある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
。