두 AMI ec2 인스턴스 간에 SSH 연결을 설정할 수 없습니다.

두 AMI ec2 인스턴스 간에 SSH 연결을 설정할 수 없습니다.

두 EC2 인스턴스 간에 SSH 연결을 설정해 보십시오. 호스트 A id_rsa.pub키를 호스트 B의 authorized_keys파일 에 복사합니다.

[root@ip-172-31-9-173 .ssh]# cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDTTRSTwBClsq7/punxLQvq00Ba7iMZRbQKAQhC+GVuQFB2LfWk9Hsetu4CqHoGo4R4BJ/SW/4v+AfKlmQ/kA8WrQ12R0dR9cuhEbbnltMXSauwrsndIf4egJVzJs3BM12jXEx+E6wSlK8nUu3xpmY12WUkJOAWfWJ6rnE4XArIcmtNzfpJyZgFhNv2fKYRBTCgU0l4HLo2uIiQj8/aLT2gQeRUdARNn3QLBrITMN6rojo1vmWYnXhjWxeUoYVDj5+bsrqfbAtyzPm43WS+2RZ0T1Rr50+REl+jin0y108v04me7BluidN013oj+gLI73A86/qBgo08l5RwG2p+oOzf root@ip-172-31-9-173


[root@ip-172-31-11-205 .ssh]# cat authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDTTRSTwBClsq7/punxLQvq00Ba7iMZRbQKAQhC+GVuQFB2LfWk9Hsetu4CqHoGo4R4BJ/SW/4v+AfKlmQ/kA8WrQ12R0dR9cuhEbbnltMXSauwrsndIf4egJVzJs3BM12jXEx+E6wSlK8nUu3xpmY12WUkJOAWfWJ6rnE4XArIcmtNzfpJyZgFhNv2fKYRBTCgU0l4HLo2uIiQj8/aLT2gQeRUdARNn3QLBrITMN6rojo1vmWYnXhjWxeUoYVDj5+bsrqfbAtyzPm43WS+2RZ0T1Rr50+REl+jin0y108v04me7BluidN013oj+gLI73A86/qBgo08l5RwG2p+oOzf root@ip-172-31-9-173

실수:

[root@ip-172-31-9-173 ~]# ssh [email protected]
Permission denied (publickey).

여기에 무엇이 빠졌는지 잘 모르겠습니다.

답변1

두 번째 컴퓨터에 대한 연결을 시작한 컴퓨터에 개인 키 id_rsa가 없습니다.

루트로 실행하는 경우 /root/.ssh/id_rsa에 배치합니다. 또한 SSH는 권한에 대해 까다롭다는 점을 잊지 마십시오. 따라서 다음을 수행해야 합니다.

chmod 700 /root/.ssh
chmod 600 /root/.ssh/id_rsa

장기적으로는 루트가 아닌 일반 사용자로 작업하는 것을 고려하십시오.

답변2

@l0ckm4의 댓글

username및 를 제공하여 실제로 SSH를 수행할 수 있습니까 password? 그렇지 않은 경우 파일에 액세스할 수 있으면 항목이 있고 AllowUsers 파일 /etc/ssh/sshd_config상단의 서브넷에 대한 SSH 액세스를 허용하는지 확인하십시오. 변경한 경우 sshd_config다시 시작해야 합니다 SSH service.


  1. sshd_config다음 사항이 있는지 확인하세요 .

AllowUsers

DenyGroups

DenyUsers

설정 및 리모컨 액세스 허용 여부를 확인합니다.


  1. known_hosts때로는 디렉토리에서 이 파일을 재설정하는 것도 도움이 됩니다 $HOME/.ssh.

cat /dev/null > $HOME/.ssh/known_hosts

  1. denyhosts설치되어 있는지, IP파일에서 주소가 차단되어 있는지 확인하세요 hosts.

잘못된 자격 증명으로 SSH를 통해 로그인을 여러 번 시도하여 IP 주소를 블랙리스트에 추가한 경우 콘솔을 사용하여 서비스에 연결하고(콘솔/VNC를 사용하여 VPS에 연결) 다음 명령을 사용할 수 있습니다. 블록 제거:

  • denyhosts서비스 중지 ( systemctl stop denyhosts또는 /etc/init.d/denyhosts stop)
  • /etc/hosts.deny에서 IP가 포함된 줄을 제거합니다.
  • 파일에서 IP가 포함된 줄을 제거합니다 /var/lib/denyhosts/hosts*(참고: 모든 파일에 IP가 포함되는 것은 아닙니다).
  • IP가 있는 행 삭제/var/lib/denyhosts/user-hosts
  • IPTABLES'테이블에서 행 삭제
  • denyhosts서비스 시작

  1. 제대로 했는지 확인해보세요port

이것이 문제가 되지 않는 경우 키를 생성하여 리모컨에 복사하는 단계는 다음과 같습니다.

로컬 시스템에서 키를 만듭니다.

ssh-keygen -o -b 4096 -t rsa -C [email protected]

또는:

ssh-keygen -t rsa -b 4096 -f ~/.ssh/vps-cloud.web-server.key -C "My web-server key"

개인 키의 비밀번호를 입력하라는 메시지가 표시됩니다. 메시지가 표시되면 비밀번호를 설정하는 것이 좋습니다.


  • -t rsa: 생성할 키 유형을 지정합니다. 프로토콜 버전 1의 경우 가능한 값은 "rsa1"이고, 프로토콜 버전 2의 경우 가능한 값은 "dsa", "ecdsa", "ed25519" 또는 "rsa"입니다.
  • -b 4096: 생성할 키의 자릿수를 지정합니다.
  • -f ~/.ssh/vps-cloud.web-server.key: 키 파일의 파일 이름을 지정합니다.
  • -씨"[이메일 보호됨]" : 새로운 코멘트를 설정합니다.

루트 계정에서 서버에 접근하려면 su위의 명령을 실행하고 반복하세요.

  1. $HOME/.ssh/id_rsa– 개인 키가 포함되어 있습니다.
  2. $HOME/.ssh/id_rsa.pub– 공개 키가 포함되어 있습니다.

키를 리모컨에 복사합니다.

ssh-copy-id [email protected]

또는:

sh-copy-id -i $HOME/.ssh/id_rsa.pub [email protected]

또는:

먼저 .ssh원격 서버에 디렉터리를 만듭니다.

ssh [email protected] "umask 077; test -d .ssh || mkdir .ssh"

cat지역 신분증. rsa.pubSSH 파일 및 파이프를 통해 공개 키를 원격 서버에 연결

cat $HOME/.ssh/id_rsa.pub | ssh [email protected] "cat >> .ssh/authorized_keys"

또는:

cat ~/.ssh/id_rsa.pub | ssh -p 22000 [email protected] "cat >> ~/.ssh/authorized_keys"

key세션당 한 번만 비밀번호를 입력 하려면 다음을 .bashrc파일에 추가하세요.

eval `ssh-agent`
ssh-add

그러면 터미널/셸이 시작될 때 비밀번호를 다시 묻는 대신 비밀번호를 묻는 메시지가 표시됩니다.

관련 정보