로컬 Ubuntu에서 Amazon EC2 서버로 SSH를 시도 할 때 왜 “Permission denied (publickey)”가 표시됩니까? 작동합니다. 다른 로컬 우분투에서 SSH를

Amazon EC2 인스턴스의 클라우드에서 실행중인 애플리케이션 인스턴스가 있으며 로컬 Ubuntu에서 연결해야합니다. 로컬 우분투 중 하나와 랩톱에서도 잘 작동합니다. 다른 로컬 우분투에서 SSH를 EC2에 액세스하려고 할 때 “Permission denied (publickey)”메시지가 나타납니다. 나에게 너무 이상하다.

하나의 인스턴스에 대한 IP 액세스가 제한되는 Amazon EC2의 보안 설정과 관련된 일종의 문제 또는 인증서를 재생성해야한다고 생각합니다.

누구든지 해결책을 알고 있습니까?



답변

이 상황에서 가장 먼저해야 할 일은 -v옵션 을 사용하여 ssh시도한 인증 유형과 결과를 확인할 수 있습니다. 그것이 상황을 밝게하는 데 도움이됩니까?

귀하의 질문에 대한 업데이트에서 “다른 로컬 우분투”에 대해 언급했습니다. ssh 개인 키를 다른 시스템으로 복사 했습니까?


답변

명시 적으로 언급되지 않았으므로 sshd는 기본적으로 authorized_keys파일 에 대한 권한에 매우 엄격 합니다. 따라서 사용자 이외의 다른 사람 authorized_keys 있거나 사용자 이외의 다른 사람 이 수있는 경우 인증을 거부합니다 (sshd가로 구성되지 않은 경우 StrictModes no)

“쓰기 가능하게 할 수있다”는 말은 부모 디렉토리 중 하나라도 사용자 이외의 다른 사람이 쓸 수있는 경우 해당 디렉토리를 수정하도록 허용 된 사용자는 authorization_keys를 수정 / 대체 할 수있는 방식으로 권한 수정을 시작할 수 있다는 것입니다.

또한 /home/username/.ssh사용자가 디렉토리를 소유하지 않아서 사용자에게 키를 읽을 수있는 권한이없는 경우 문제가 발생할 수 있습니다.

drwxr-xr-x 7 jane jane 4096 Jan 22 02:10 /home/jane
drwx------ 2 root root 4096 Jan 22 03:28 /home/jane/.ssh

jane는 .ssh파일을 소유하지 않습니다 . 이것을 통해 수정

chown -R jane:jane /home/jane/.ssh

이러한 종류의 파일 시스템 권한 문제는로 표시 ssh -v되지 않으며 로그 수준을 DEBUG로 설정할 때까지 sshd 로그 (!)에도 표시되지 않습니다.

  • 편집 /etc/ssh/sshd_config. LogLevel DEBUG어딘가에 읽는 줄을 원합니다 . 배포판에서 제공하는 메커니즘을 사용하여 SSH 서버를 다시로드하십시오. ( service sshd reloadRHEL / CentOS / Scientific에서) 정상적으로 다시로드해도 기존 세션이 삭제되지 않습니다.
  • 인증을 다시 시도하십시오.
  • 인증 시설 로그의 위치를 ​​파악하고 읽으십시오. (IIRC, /var/log/auth.log데비안 기반 배포판; /var/log/secureRHEL / CentOS / Scientific.)

파일 시스템 권한 오류가 포함 된 디버그 출력의 문제점을 훨씬 쉽게 해결할 수 있습니다. /etc/ssh/sshd_config완료되면 변경 사항을 되 돌리십시오 !


답변

-l옵션 추가를 잊었 기 때문에이 오류가 발생했습니다 . 내 로컬 사용자 이름이 원격 시스템과 다릅니다.

이것은 귀하의 질문에 대한 답변이 아니지만 여기 내 문제에 대한 답변을 찾고 있습니다.


답변

우분투 AMI를 기반으로 한 새로운 인스턴스 에서이 메시지를 받았습니다. PEM을 제공하기 위해 -i 옵션을 사용하고 있었지만 여전히 “Permission denied (publickey)”가 표시되었습니다.

내 문제는 올바른 사용자를 사용하지 않았다는 것입니다. ubuntu @ ec2로 ssh를 실행하면 정상적으로 작동합니다.


답변

ssh -v(물론 내 의견으로는) 보다 읽기 쉬운 것이 tail -f /var/log/auth.log입니다. 연결을 시도하는 동안 연결하려는 서버에서 실행해야합니다. 일반 텍스트로 오류가 표시됩니다.

이것은 내 문제를 해결하는 데 도움이되었습니다.

xx.yy.com의 사용자 [username]은 AllowGroups에 사용자 그룹이 없기 때문에 허용되지 않습니다.


답변

/ etc / ssh / sshd_config 파일을 확인하십시오 . 거기에서 말하는 줄을 찾으십시오.

PasswordAuthentication no

이 줄은 no 대신 yes로 수정해야합니다. 또한 나중에 sshd 서버를 다시 시작하십시오.

sudo /etc/init.d/ssh restart


답변

아마도 현재 포스터와 관련이 없지만 비슷한 상황에 대한 답변을 검색 할 때이를 찾는 다른 사람들을 도울 수 있습니다. Amazon이 ssh 키 쌍을 생성하도록하는 대신, 자신의 표준 기본 공개 ssh 키를 Amazon에 업로드하고 EC2 인스턴스를 실행할 때이를 지정하는 것이 좋습니다.

이를 통해 ssh에서 “-i”유형 구문을 삭제하고 표준 옵션과 함께 rsync를 사용할 수 있으며 모든 EC2 리전에서 동일한 ssh 키를 사용할 수 있습니다.

이 프로세스에 대한 기사를 여기에 썼습니다.

Amazon EC2에 개인 ssh 키 업로드
http://alestic.com/2010/10/ec2-ssh-keys