NAT 인스턴스를 통해 가상 프라이빗 서버의 프라이빗 서브넷에 있는 Amazon Web Service(AWS) EC2 인스턴스에 연결하고 있는데 다음 오류가 발생합니다.
권한이 거부되었습니다(공개키)
이는 NAT에 연결하고 프라이빗 서브넷 EC2 인스턴스에 SSH를 시도한 후에 발생합니다.
절차:
~/.ssh/config
다음을 사용하여 호스트를 정의합니다 .Host my_aws_nat Hostname xx.xx.xx.xx User ec2-user IdentityFile /location/of/my/aws/key_pair.pem ForwardAgent yes
SSH에서 NAT 인스턴스로 연결
ssh my_aws_nat
(성공)프라이빗 서브넷의 인스턴스에 대한 SSH - 오류가 발생하는 경우
ssh [email protected]
를 사용하여 NAT에서 개인 인스턴스를 ping할 수 있습니다 ping 10.0.X.X
. 따라서 보안 그룹 문제가 아니라고 확신합니다. 상담원 전달 문제인 것 같습니다.
현재 연결 중인 인스턴스는 NAT 인스턴스(학습 모드)와 동일한 키 쌍을 사용합니다.
내가 시도한 다른 방법은 다음을 사용하여 NAT에 연결하는 것입니다.
ssh -A [email protected] -i key_pair.pem
다시 말하면 NAT에 올바르게 연결되지만 개인 인스턴스에 연결할 때 동일한 오류가 발생합니다.
ssh-agent
Mac OS X에서 사용해야 합니까 ?
아니면 동일한 작업을 ForwardAgent yes
지정 하면 안 되나요?/.ssh/config
답변1
답변2
나에게는 .NET에서 요새(NAT 인스턴스)의 공개 키를 제거하는 데 도움이 되었습니다 ~/.ssh/known_hosts
. 원격 배스천 호스트의 키가 변경되고(EIP를 새 인스턴스에 할당하는 경우 매우 자주 발생할 수 있음) StrictHostKeyChecking no
ssh_config에 추가로 설정된 경우 배스천 호스트에서 AgentForwarding이 비활성화됩니다. 요새 호스트에 로그인하면 경고 메시지도 표시됩니다. 내 입장에서는 아직 읽지 않았을 뿐이야 -.-
따라서 키를 삭제하고 다시 연결하면 현재 키가known_hosts 파일에 추가되고 프라이빗 서브넷의 인스턴스에 연결할 수 있습니다.