[amazon-web-services] Amazon EC2 인스턴스에 대한 SSH 액세스가 닫힐 때 (공개 키) 권한이 거부되었습니다.


Answers

이 경우 키 쌍이 손실되어 문제가 발생합니다. 이것에 관해서:

  • 인스턴스에서 키 쌍을 변경할 수있는 방법이 없습니다 . 새 키 쌍을 사용하는 새 인스턴스를 만들어야합니다.
  • Elastic Beanstalk 의 응용 프로그램에서 인스턴스를 사용하는 경우 문제를 해결할 수 있습니다 .

다음 단계를 따르십시오.

  1. AWS Management Console에 대한 액세스
  2. 탄력적 인 Beanstalk 탭 열기
  3. 모든 응용 프로그램 탭에서 응용 프로그램을 선택하십시오.
  4. 왼쪽에서 구성을 선택하십시오.
  5. Instances Gear를 클릭하십시오.
  6. 서버 양식에서 EC2 키 쌍 입력을 확인하고 새 키 쌍을 선택하십시오. 방금 생성 된 새 키 쌍을 보려면 목록을 새로 고쳐야 할 수 있습니다.
  7. 구하다
  8. Elastic Beanstalk은 새 키 쌍과 관련된 새 인스턴스를 생성합니다.

일반적으로 EC2 인스턴스가 인바운드 SSH 트래픽을 허용하도록해야한다는 것을 기억하십시오.

이렇게하려면 EC2 인스턴스의 보안 그룹에 대한 특정 규칙을 만들어야합니다. 다음 단계를 수행 할 수 있습니다.

  1. AWS Management Console에 대한 액세스
  2. 열린 EC2 탭
  3. 인스턴스 목록에서 관심있는 인스턴스를 선택하십시오.
  4. 설명 탭에서 인스턴스가 사용중인 보안 그룹 의 이름을 입력하십시오.
  5. 설명 탭 에서 규칙보기를 클릭하고 보안 그룹에 포트 22에서 인바운드 ssh 트래픽에 대한 규칙이 있는지 확인하십시오
  6. 그렇지 않은 경우 네트워크 및 보안 메뉴에서 보안 그룹을 선택하십시오.
  7. 인스턴스에서 사용하는 보안 그룹을 선택하고 인바운드 탭을 누릅니다.
  8. 인바운드 탭 왼쪽에서 SSH 인바운드 트래픽에 대한 규칙을 작성할 수 있습니다.
    • 새 규칙 만들기 : SSH
    • 출처 : 인스턴스에 액세스하려는 IP 주소 또는 서브 네트워크
    • 참고 : 인스턴스에 무제한 액세스 권한 을 부여하려면 Amazon에서이 연습을 권장하지 않지만 0.0.0.0/0 을 지정할 수 있습니다.
  9. 규칙 추가를 클릭 한 다음 변경 내용 적용
  10. 이제 SSH를 통해 인스턴스에 연결할 수 있는지 확인하십시오.

희망이 나를 도울 수있는 누군가를 도울 수 있기를 바랍니다.

Question

Amazon EC2 인스턴스를 사용하려고하지만 다음 오류가 발생했습니다.

Permission denied (publickey).

내 키 쌍을 만들고 .pem 파일을 다운로드했습니다.

주어진:

chmod  600 pem file.

그런 다음이 명령

ssh -i /home/kashif/serverkey.pem  ubuntu@ec2-54-227-242-179.compute-1.amazonaws.com

하지만이 오류가 있습니다 :

Permission denied (publickey)

또한 filezilla를 사용하여 파일을 업로드 / 다운로드 할 수 있습니까?




똑같은 일이 일어 났지만 모든 일이 일어나는 것은 내 로컬 컴퓨터의 키 체인에서 개인 키가 손실되었다는 것입니다.

ssh-add -K

열쇠를 다시 추가 한 다음 ssh 명령을 사용하여 연결 한 후 작업에 복귀했습니다.




나는 같은 오류지만 다른 상황을 겪었다. 나에게 많은 시간이 지나면 파란색으로 변했고 원격 컴퓨터에 성공적으로 ssh를 연결할 수 있었다. 내 문제에 대한 해결책을 많이 찾은 후 파일 사용 권한을 얻었다. 그것은 내 컴퓨터 나 ssh의 파일 / 디렉토리에 속하는 원격 권한을 변경하지 않았기 때문에 당연히 이상합니다. 그래서 여기 좋은 archlinux wiki 에서 :

로컬 머신의 경우 다음을 수행하십시오.

$ chmod 700 ~/
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/id_ecdsa

원격 시스템의 경우 다음을 수행하십시오.

$ chmod 700 ~/
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys

그 후 내 ssh는 허가가 거부 된 (공개 키) 일없이 다시 일하기 시작했습니다.




나는 키와 ssh 명령 줄을 올바로 (나는 우분투 14.04 인스턴스를 복제했기 때문에) 알았지 만 위의 웨이드 앤더슨 (Wade Anderson)이 제안한대로 5 분을 기다린 후에도 새로운 인스턴스로 ssh 할 수 없었습니다.

나는 기계를 파괴하고 다시 만들어야했다. 이것은 두 번에 걸쳐 발생했습니다. 처음에는 들어갈 수 없으므로 잘못된 것을 볼 수 없습니다.

따라서이 문제가 발생하면 시도하십시오.




내 경우에는 다음과 같이했습니다.

chmod 400 <key.pem>

ssh -i <key.pem> ec2-user@ec2_public_dns (for debian)

나는 처음에 root@ part를 사용했고 나는이 프롬프트를 얻었다.

Please login as the user "ec2-user" rather than the user "root".



내 개인 키가 권한 400 으로 설정되어 권한이 거부되어 '644'로 설정하면 나를 도왔습니다.

key_load_private_type : 사용 권한이 거부 된 특정 오류입니다.

해결책 : Sudo chmod 644 <key.pem>

참고 : 644로 설정해야하며 400으로 작동하지 않아야합니다.




다음은이 오류를 생성하는 실망스러운 시나리오입니다.

다른 인스턴스 (예 : 인스턴스 xyz)를 만든 AMI에서 새 인스턴스를 점심 식사하는 경우 새 인스턴스는 인스턴스 A와 동일한 키만 사용합니다. 이것은 완전히 이해할 수 있지만 혼란스러워집니다. 새 인스턴스를 만드는 단계별 프로세스에서 작동하지 않는 키를 선택하거나 생성하라는 것입니다 (마지막 단계에서).

생성 또는 선택하는 키에 관계없이, 예를 들어 XYZ로 사용했던 키만 새 인스턴스에서 허용됩니다.




내 우분투 인스턴스를 연결할 때 사용자 이름 (우분투)을 추가하는 것을 잊어 버렸습니다. 그래서 이것을 시도 :

ssh -i /path/my-key-pair.pem my-ec2-instance.amazonaws.com

올바른 길은

ssh -i /path/my-key-pair.pem ubuntu@my-ec2-instance.amazonaws.com



비슷한 오류가 발생했습니다.

debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: xxxx.pem
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).

내 문제는 Step 3: Configure instance detail 에서 Step 3: Configure instance detail 시작시 스크립트 실행 오류로 인해 인스턴스가 제대로 시작되지 않았다는 것입니다 Advanced details:

내가 입력 한 것으로 생각한 것 :

#include https://xxxx/bootstrap.sh

실제로 입력 된 내용은 인스턴스 설치를 중단시킵니다.

#include

https://xxxx/bootstrap.sh

따라서 인스턴스 측의 공개 키가 생성되지 않았습니다.




나는 하나의 머신에서 SSH를 할 수 있었지만 다른 머신에서는 SSH를 할 수 없었다. 내가 잘못된 개인 키를 사용하고있는 것으로 나타났습니다.

이 방법을 찾은 방법은 다음과 같이 개인 키에서 공개 키를 가져 오는 것입니다.

ssh-keygen -y -f ./myprivatekey.pem

나온 내용은 ​​EC2 인스턴스의 ~/.ssh/authorized_keys 에있는 내용과 일치하지 않습니다.




나는 문제를 풀기 전에 sudo 를 넣기 sudo

sudo ssh -i mykey.pem myec2.amazonaws.com

그러나 적절한 해결책은 소유권을 먼저 변경 한 다음 Janus Troelsen이 아래에서 말했듯이 일반 사용자로 연결하는 것입니다. 내 경우에는 다음과 같습니다.

chown wellington:wellington key.pem



이 오류의 또 다른 가능한 원인은 다음과 같습니다.

사용자의 홈 디렉토리가 그룹 쓰기 가능 이면 사용자는 로그인 할 수 없습니다.

(우분투 인스턴스에서 재생산.)




나는 똑같은 문제와 매우 이상했다. 당신이 다음을 따르는 것보다 모든 것을 잘한다고 믿는다면 : 때때로 EC2 인스턴스에 대한 사용자에 대한 혼란이 있습니다 !! 어떤 때는 ec2 사용자, 우분투, centos 등을 얻습니다. 그래서 사용자 이름을 확인하십시오 !!

root 사용자로 로그인 ssh -i yourkey.pem (400 permission) root@<ip> 그러면 오류가 발생하고 사용 가능한 사용자 이름이 표시 됩니다. 그 사용자와 로그인하십시오.




다음 단계를 수행해야합니다.

  1. 리눅스를 사용한다면 ssh 클라이언트 나 터미널을여십시오.
  2. 개인 키 파일을 찾아 디렉토리를 변경하십시오.
    cd <path to your .pem file>
  3. 아래 명령을 실행하십시오 :
    chmod 400 <filename>.pem
    ssh -i <filename>.pem ubuntu@<ipaddress.com>

ubuntu 사용자가 작동하지 않으면 ec2-user 를 사용해보십시오.




Links