두 Linux 시스템 간의 SSH - 공개 키가 거부되었습니다.

두 Linux 시스템 간의 SSH - 공개 키가 거부되었습니다.

하나의 Ubuntu 상자에서 다른 Ubuntu 상자로 연결하려고 합니다. 둘 다 Google Cloud Platform의 인스턴스이며 내부 및 외부 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에는 루트, 기존 사용자, 존재하지 않는 사용자가 있습니다. 그리고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를 수동으로 복사하여 자신에게 붙여넣을 수 있으며 그러면 유틸리티를 사용할 필요가 없습니다 ssh-copy-id.

관련 정보