EC2 인스턴스의 키 페어 변경


답변:


491

이 답변은 더 이상 기존 서버에 대한 SSH 액세스 권한이없는 경우 (즉, 개인 키를 잃어버린 경우 )에 유용합니다 .

여전히 SSH 액세스 권한이있는 경우 아래 답변 중 하나를 사용하십시오.

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#replacing-lost-key-pair

Eric Hammond의 블로그 게시물 덕분에 내가 한 일이 있습니다.

  1. 실행중인 EC2 인스턴스 중지
  2. /dev/xvda1볼륨을 분리합니다 (볼륨 A라고 부릅니다)- 여기를 참조하십시오
  3. 새로운 키 페어를 사용하여 새로운 t1.micro EC2 인스턴스를 시작하십시오. 동일한 서브넷 에서 생성해야합니다. 그렇지 않으면 인스턴스를 종료하고 다시 생성해야합니다. - 여기를 참조하십시오
  4. /dev/xvdf(또는 /dev/sdf) 와 같이 볼륨 A를 새 마이크로 인스턴스에 연결하십시오.
  5. 새 마이크로 인스턴스에 SSH를 연결하고 볼륨 A를 /mnt/tmp

    $ sudo 마운트 / dev / xvdf1 / mnt / tmp

  6. 복사 ~/.ssh/authorized_keys/mnt/tmp/home/ubuntu/.ssh/authorized_keys

  7. 로그 아웃
  8. 마이크로 인스턴스 종료
  9. 볼륨 A에서 분리
  10. 다음과 같이 볼륨 A를 기본 인스턴스에 다시 연결하십시오. /dev/xvda
  11. 메인 인스턴스 시작
  12. .pem파일을 사용하여 이전과 같이 로그인

그게 다야.


6
방금 내 엉덩이를 구했어, 넌 전설이야!
Garry Welding

8
mkdir /mnt/tmp다음 mount /dev/xvdf /mnt/tmp# 5 트릭을해야한다. 13 단계는 rm ~/.ssh/known_hosts연결중인 상자에 있을 수 있습니다.
brandonscript

21
이것은 너무 냄새가납니다… 우선, 아래의 Eric Hammond의 답변을보십시오. 둘째 : Pat Mcb의 답변. 실제로 동일한 작업을 수행하지만 재미있는 해결 방법을 수행하는 데 1 시간을 낭비하지 않습니다. 추신. stackoverflow.com/a/24143976/547223
kgadek

3
나는이 답변을 바탕으로 실제로 구체적인 지침을 작성했지만 본질적으로 동일한 아이디어입니다 -gist.github.com/tamoyal/1b7ec4d3871b343d353d . @kgadek이 지적했듯이 약간 더럽고 시간이 많이 걸리지 만 키를 변경하려는 서버에서 잠겨 있고 해당 서버의 복사본을 스핀 업하지 않으려는 경우 훌륭한 옵션입니다. 한 시간이 아닌 인스턴스 당 약 5-10 분이 걸립니다.
Tony

4
@Eric과 @Pat의 답변은 인스턴스에 다른 키 페어를 사용하려는 사람들을위한 솔루션입니다. 이것들은 어쨌든 키 페어 파일을 잃어버린 사용자에게는 도움이되지 않습니다. 볼륨을 분리하고 다른 인스턴스에 연결하지 않으면 해당 볼륨을 어떻게 제어 할 수 있습니까? 원본 .ssh/authorized_keys파일을 교체하지 마십시오 .
sanjeev

187

인스턴스가 시작되면 메타 데이터 수준에서 인스턴스와 관련된 키 페어를 변경할 수있는 방법은 없지만 인스턴스에 연결하기 위해 사용하는 ssh 키를 변경할 수 있습니다.

대부분의 AMI에는 퍼블릭 ssh 키를 다운로드하여 .ssh / authorized_keys 파일에 설치하여 해당 프라이빗 ssh 키를 사용하여 해당 사용자로 ssh를 시작할 수있는 시작 프로세스가 있습니다.

인스턴스에 액세스하기 위해 사용하는 ssh 키를 변경하려면 인스턴스 자체에서 certified_keys 파일을 편집하고 새 ssh 공개 키로 변환해야합니다.

authorized_keys 파일은 로그인 한 사용자의 홈 디렉토리 아래에있는 .ssh 서브 디렉토리 아래에 있습니다. 실행중인 AMI에 따라 다음 중 하나 일 수 있습니다.

/home/ec2-user/.ssh/authorized_keys
/home/ubuntu/.ssh/authorized_keys
/root/.ssh/authorized_keys

authorized_keys 파일을 편집 한 후에는 항상 다른 것을 사용하십시오 터미널을 사용하여 파일을 편집하는 데 사용중인 세션에서 연결을 끊기 전에 인스턴스에 ssh 할 수 있는지 확인하십시오. 실수를하거나 인스턴스에서 완전히 빠져 나가고 싶지는 않습니다.

EC2의 ssh 키 페어에 대해 생각하고있는 동안 Amazon에서 키 페어를 생성하는 대신 자체 ssh 공개 키를 EC2에 업로드하는 것이 좋습니다.

여기에 내가 쓴 기사가 있습니다.

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

이것은 실행하는 새 인스턴스에만 적용됩니다.


나는 바보처럼 그 실수를 했어 지금, ssh back 수 없습니다 :(. 빠른 수정 제안?
aatifh

11
aatifh : 다음은 그 상황에서 벗어나는 방법에 대한 글입니다 : alestic.com/2011/02/ec2-fix-ebs-root
Eric Hammond

@EricHammond 이것은 제자리에 없을 수도 있지만 이것이 어떻게 작동하는지 아는 것 같습니다 ... 오늘 EC2 인스턴스를 설정하고 .pem내 Mac 에서 개인 키 파일을 받았지만 ssh -i key.pem인증되지는 않습니다 (권한이 거부 됨 (공개 키)). EC2 Management Console의 Key Pair Name (키 페어 이름)에 아무것도 표시되지 않습니다. 이것은 나에게 놀랍다. 이것을 어떻게 설정할 수 있습니까? 관리 콘솔을 기반으로 구성한 키 페어가 인스턴스에 할당되지 않은 것으로 나타납니다!
Steven Lu

1
@StevenLu : 그렇습니다. 댓글 스레드는 새로운 질문을하기에 잘못된 곳입니다. serverfault.com 에서 새 질문을 작성해보십시오 ( 스택 오버플로 보다 해당 문제에 더 적합 함).
Eric Hammond

4
키를 추가 할 수있는 멋진 작은 라이너가 있습니다. 이렇게하면 AWS에서 생성 한 키 외에 일반 펍 키만 추가되므로 작동하지 않으면 스스로 잠그지 않은 것입니다. stackoverflow.com/a/5654728/193494
Kevin C.

78

AWS pem을 다운로드 한 후이 명령을 실행하십시오.

ssh-keygen -f YOURKEY.pem -y

그런 다음에 출력을 덤프하십시오 authorized_keys.

또는 pem 파일을 AWS 인스턴스에 복사하고 다음 명령을 실행하십시오.

chmod 600 YOURKEY.pem

그리고

ssh-keygen -f YOURKEY.pem -y >> ~/.ssh/authorized_keys

14
이미 시스템에 액세스 할 수있는 경우에만 작동합니다. (이전 .pem 파일을 잃지 않은 것처럼).
Daniel

5
>> 대신>를 사용하여 현재 사용자를 추가하는 대신 재정의 할 수 있습니다.
Adrian Lopez

이것은 정확하고 간단한 답변입니다. 다시 시작하거나 새 인스턴스를 만들거나 드라이브를 탑재 할 필요가 없습니다. .pem을 가져 와서 keygen으로 만들고 authorized_hosts에 추가하십시오.
스 팽키

나는이 ssh-keygen -f YOURKEY.pem -y >> ~ / .ssh / authorized_keys를 수행했지만 sitll은 새로운 음모 키로 내 ec2에 액세스 할 수 없습니다.
manukyanv07

나는 이것을 실행했고 내 로컬 키는 변경되지 않았습니다.
루이즈

50

AWS EC2 지원 지침 :

  1. PEM 로그인 변경
  2. EC2 콘솔로 이동
  3. 네트워크 및 보안에서 키 페어를 클릭하십시오. 키 페어 생성을 클릭하십시오.
  4. 새 키 페어에 이름을 지정하고 .pem 파일을 저장하십시오. 키 페어의 이름은 인스턴스에 연결하는 데 사용됩니다
  5. 인스턴스에 대한 SSH 연결을 만들고 열어 둡니다
  6. PuttyGen에서 "로드"를 클릭하여 .pem 파일을로드하십시오.
  7. SSH-2 RSA 단일 선택 단추를 선택된 상태로 유지하십시오. "개인 키 저장"을 클릭하십시오. 팝업 창이 나타나면 "예"를 클릭하십시오.
  8. "공개 키 저장"을 클릭하여 공개 키를 생성하십시오. 이것은 현재 인스턴스로 복사 할 공개 키입니다.
  9. 새 키 쌍 이름과 확장자가 .pub 인 공개 키를 저장하십시오.
  10. 메모장에서 공개 키 컨텐츠 열기
  11. "설명 :"imported-openssh-key "아래 및"---- END SSH2 PUBLIC KEY ---- 이전
    에 내용을 복사하십시오. – 내용을 한 줄로 복사해야합니다. 모든 새 줄을 삭제하십시오.
  12. 연결된 인스턴스에서 도구 vi를 사용하여 authorized_keys 파일을 엽니 다. 다음 명령을 실행하십시오. vi .ssh / authorized_keys 파일에 원래 공개 키도 표시되어야합니다.
  13. 파일에서 커서를 첫 번째 공개 키 컨텐츠의 끝으로 이동하십시오. 삽입을 위해 "i"를 입력하십시오.
  14. 새 줄에 "ssh-rsa"를 입력하고 공개 키의 내용, 공백 및 .pem 파일의 이름 (.pem 제외)을 붙여 넣기 전에 공백을 추가하십시오. 참고- 이전 줄과 같은 형식
  15. Esc 키를 누른 다음 : wq!를 입력하십시오.

업데이트 된 authorized_keys 파일이 저장됩니다

이제 새로운 키 파이를 사용하여 인스턴스에 새로운 SSH 세션을 열어보십시오

새 키 페어를 사용하여 인스턴스에 SSH로 연결할 수 있음을 확인하면 .ssh / authorized_key를 vi하고 이전 키를 삭제할 수 있습니다.

Shaggie의 답변에 대한 답변 :

인스턴스에 연결할 수없는 경우 (예 : 키가 손상됨) AWS 콘솔을 사용하여 볼륨을 분리하는 것 ( http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-detaching-volume.html 볼륨의 키를 변경하고 이전 인스턴스에 다시 연결하는 것보다)을 실행 한 후 작업 인스턴스에 다시 연결하십시오.


6
가장 좋은 답변이어야합니다

2
이전 키가 손상되어 이전 ppk 파일이 없어서 퍼티를 통해 인스턴스에 연결할 수 없으면 어떻게됩니까 ???
Shaggie

3
SSH 액세스 권한이 없으면이 문제가 발생합니다.
Jayden Lawson

3
제이든 로손, 인터넷에 연결되어 있지 않으면 어떻게합니까?
Elia Weiss

1
키 페어가 다른 사람과 공유되어 더 이상 로그인 할 수 없도록 키 페어를 변경해야 할 수도 있습니다.
Harikrishna

38

Elastic Beanstalk에서 관리 할 때 활성 EC2 키 페어를 변경할 있습니다. Elastic Beanstalk> 구성> 보안 아래 EC2 키 페어 드롭 다운 에서 새 키를 선택하십시오 . 확실하면 묻는이 메시지가 표시됩니다.

EC2KeyName : 옵션 EC2KeyName 설정에 대한 변경 사항은 즉시 적용되지 않습니다. 기존의 각 EC2 인스턴스가 교체되고 새 설정이 적용됩니다.

내가 할 때 내 인스턴스는 이미 종료되었습니다. 그런 다음 시작, 종료 및 다시 시작되었습니다. 분명히 "바꾸기"는 새 인스턴스를 종료하고 생성하는 것을 의미합니다. 부팅 볼륨을 수정 한 경우 먼저 AMI를 생성 한 다음 사용자 지정 AMI ID 와 동일한 Elastic Beanstalk> 구성> 인스턴스 형태로 AMI를 지정하십시오 . 또한 EC2 인스턴스 교체에 대해 경고합니다.

EC2 키 페어와 커스텀 AMI ID를 수정 한 후 둘 다에 대한 경고가 표시되면 저장 을 클릭 하여 계속하십시오.

인스턴스를 다시 만들 때 IP 주소가 변경되므로 SSH를 통해 연결할 때 사용할 EC2 콘솔에서 새 IP 주소를 검색해야합니다.


1
이것은 이제 구성의 '보안'섹션에 있습니다.
Will Demaine

감사합니다 @WillDemaine. 현재 AWS를 사용하지 않으므로 귀하의 의견을 듣고 편집을 승인하겠습니다!
Mark Berry

31

나는이 접근법을 겪었고 얼마 후, 그것을 작동시킬 수있었습니다. 실제 명령이 없기 때문에 힘들었지 만 알아 냈습니다. 그러나 훨씬 더 쉬운 접근 방식을 발견하고 곧바로 테스트했습니다.

  1. 인스턴스를 AMI로 저장합니다 (재부팅 여부에 관계없이 재부팅하는 것이 좋습니다). EBS가 지원되는 경우에만 작동합니다.
  2. 그런 다음이 AMI에서 인스턴스를 시작하고 새 키 파일을 할당하십시오.
  3. 탄력적 IP (해당되는 경우)를 새 인스턴스로 옮기면 완료됩니다.

이것은 실수로 ~ / .ssh를 삭제 한 후에 완전히 작동했습니다.
morri

나는 똑같이하고 효과가 있었으므로 이제 새로운 pem으로 로그인 할 수 있습니다. 그러나 나는 여전히 오래된 pem으로 로그인 할 수 있습니다. 이제 2 pems가 유효합니다.
Vitaly

참고로 이것은 바쁜 경우 다른 키로 새로운 EC2를 회전시키는 빠르고 쉬운 GUI 방법이지만 @vitaly는 오래된 pem 키도 유효하다는 것을 알았으므로 /home/ec2-user/.ssh/authorized_keys로 이동하여 제거해야합니다 파일에서 오래된 pem 키 시간이 없을 때 빠르고 쉬운 빠른 Pem 키 변경 방법에 감사합니다.
Blu Towers

이것은 나를 위해 작동하지 않았습니다. AWS는 인스턴스가 AMI에서 생성 된 경우 부모 이미지의 자격 증명을 사용한다는 다른 메시지와 함께 암호를 사용할 수 없다고 계속 말했습니다.
Brady

15

아래 단계를 수행하면 시간이 많이 절약되고 실행중인 인스턴스를 중지 할 필요가 없습니다.

  1. 새로운 키 페어를 사용하여 새로운 t1.micro EC2 인스턴스를 시작하십시오. 동일한 서브넷에서 생성해야합니다 에서 생성해야합니다. 그렇지 않으면 인스턴스를 종료하고 다시 생성해야합니다.
  2. 새로운 마이크로 인스턴스에 SSH를 연결하고 ~ / .ssh / authorized_keys의 내용을 복사 컴퓨터의 어딘가에 합니다.
  3. 이전 ssh 키를 사용하여 기본 인스턴스에 로그인 .
  4. 포인트 2에서 ~ / .ssh / authorized_keys로 파일 내용 복사 및 교체
  5. 이제 새 키로 만 다시 로그인 할 수 있습니다. 이전 키는 더 이상 작동하지 않습니다.

그게 다야. 즐기십시오 :)


14

가장 간단한 방법은 다음과 같습니다.

  1. 기존 인스턴스의 AMI 이미지를 생성합니다.
  2. 새로운 키 페어와 함께 AMI 이미지 (1 단계로 분류)를 사용하여 새로운 EC2 인스턴스를 시작합니다.
  3. 새 키를 사용하여 새 EC2 인스턴스에 로그인하십시오.

@ 브래디, 전혀 작동하지 않는 이유는 무엇입니까? 스냅 샷 만들기? 인스턴스를 시작 하시겠습니까? 로그인?
세르게이

4
이 변경이 최근 변경인지 확실하지 않지만, 이미 키가 할당 된 인스턴스에서 AMI를 생성 할 때 해당 키를 복사하여 AMI 이미지에 로그인 할 수 있는지 여부에 관계없이 해당 키를 사용할 수 있어야합니다 생성하는 동안 다른 키 페어를 할당합니다.
브래디

@Brady가 작동하지 않는다고 언급 했으므로 이것은 해결책이 아닙니다.
Greg Sansom

8

ElasticBeanstalk 플랫폼을 사용하는 경우 다음을 수행하여 키를 변경할 수 있습니다.

  • Elastic Beanstalk 패널
  • 구성
  • 인스턴스 (톱니 바퀴 오른쪽 상단)
  • EC2 키 페어

현재 인스턴스가 종료되고 선택한 키 / 설정으로 새 인스턴스가 생성됩니다.


2
ElasticBeanstalk를 사용하는 경우 여기에서 가장 간단한 답변을 제시합니다.
Yuval 교수 Karmi

2
경고! 이것은 위험한 해결책입니다. 또한 AWS는 해당 인스턴스에 연결된 스토리지 (예 : 가상 HDD)를 재설정합니다 (!!). 따라서 스토리지를 분리하고 새 인스턴스를 생성 한 후 새 인스턴스와 함께 제공된 새 인스턴스 대신 다시 연결해야합니다. 물론, 암호화 된 볼륨이 아닌 것이 가장 좋습니다 (그리고 키를 잃어 버리지 않았습니다.)
JamesC

7

이 질문에는 두 가지 시나리오가 있습니다.

1) .pem 파일에 액세스 할 수 없으므로파일 을 만들고 싶습니다.

2) 있습니다. pem 파일 액세스 권한은 있지만 일부 취약성 또는 보안 목적으로 새 .pem 파일을 변경하거나 만들려고 합니다 .

따라서 키를 분실 한 경우 위로 스크롤하여 다른 답변을 볼 수 있습니다 . 그러나 보안을 위해 단순히 .pem 파일을 변경하면 다음 단계를 따르십시오.

1) AWS 콘솔 로그인으로 이동하여 키 쌍 섹션에서 새 .pem 파일을 생성하십시오. 자동으로 PC에 .pem 파일을 다운로드합니다

2) Linux / ubuntu를 사용하는 경우 아래 명령을 사용하여 권한을 400으로 변경하십시오.

chmod 400 yournewfile.pem

3) 로컬 컴퓨터에서 새로 다운로드 한 파일의 RSA 생성

ssh-keygen -f yournewfile.pem -y

4) 여기에서 RSA 코드를 복사하십시오

5) 이제 .pem 파일을 통해 인스턴스에 SSH 연결

ssh -i oldpemfileName.pem username@ipaddress

sudo vim  ~/.ssh/authorized_keys

6) 한 줄 간격을두고 새 파일의 복사 된 RSA를 여기에 붙여 넣은 다음 파일을 저장하십시오.

7) 이제 새 .pem 파일이 실행중인 인스턴스와 연결되었습니다.

8) 이전 .pem 파일 액세스를 비활성화하려면

sudo vim ~/.ssh/authorized_keys

여기에서 이전 RSA를 제거하거나 변경하십시오.

참고 :- 새로 생성 된 RSA가 변경되지 않도록주의해서 제거하십시오.

이런 식으로 새 .pem 파일을 실행중인 인스턴스와 변경 / 연결할 수 있습니다.

보안상의 이유로 이전에 생성 된 .pem 파일에 대한 액세스를 취소 할 수 있습니다.

그것이 도움이되기를 바랍니다!


2
얼어 붙은 AMI 이미지로 새 인스턴스를 만들 필요가 없기 때문에이 솔루션이 마음에 듭니다. 그러나이 방법으로 EC2 대시 보드에서 EC2 인스턴스의 관련 키 쌍 이름을 변경할 수 있습니까? @Parveen yadav
중독 됨

6

가장 간단한 해결책은

~/.ssh/id_rsa.pub

에서 AWS 인스턴스의 authorized_keys에

~/.ssh/authorized_keys

이를 통해 ssh 명령에 pem 파일을 지정하지 않고 EC2 인스턴스로 ssh 할 수 있습니다. 연결을 테스트 한 후에 다른 모든 키를 제거 할 수 있습니다.

다른 사람과 공유하기 위해 새 키를 작성해야하는 경우 다음을 사용하여 수행 할 수 있습니다.

ssh-keygen -t rsa

그러면 개인 key.pem 파일이 생성되며 다음을 사용하여 공개 키를 얻을 수 있습니다.

ssh-keygen -f private_key.pem -y > public_key.pub

private_key.pem을 가진 사람은 누구나

ssh user@host.com -i private_key.pem

4
~/.ssh/authorized_keysSSH AWS 인스턴스조차도 액세스 할 수없는 경우 어떻게 액세스 할 수 있습니까?
prayagupd

3
마지막 줄이 잘못되었다고 생각합니다. 개인 키가있는 경우에만 연결할 수 있습니다. ssh -i private_key.pem user@host.com. 누군가에게 인스턴스에 대한 액세스 권한을 부여하고 싶다면 공개 키를 안전하게 공유 할 수 있으며 사용자에게 인스턴스에 대한 액세스 권한을 부여하기 위해 authorized_keys에 추가 할 수 있습니다.
code4cause

5

루트 장치를 회전하거나 SSH 공개 키를 변경할 필요가 없습니다 authorized_keys. 이를 위해 userdata를 사용하여 인스턴스에 ssh 키를 추가 할 수 있습니다. 이를 위해서는 먼저 AWS 콘솔 또는 ssh-keygen을 통해 새로운 KeyPair를 생성해야합니다.

ssh-keygen -f YOURKEY.pem -y

그러면 새 SSH KeyPair에 대한 공개 키가 생성되고이 공개 키를 복사하여 아래 스크립트에서 사용합니다.

Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0

--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"

#cloud-config
cloud_final_modules:
- [scripts-user, always]

--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"

#!/bin/bash
/bin/echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6xigPPA/BAjDPJFflqNuJt5QY5IBeBwkVoow/uBJ8Rorke/GT4KMHJ3Ap2HjsvjYrkQaKANFDfqrizCmb5PfAovUjojvU1M8jYcjkwPG6hIcAXrD5yXdNcZkE7hGK4qf2BRY57E3s25Ay3zKjvdMaTplbJ4yfM0UAccmhKw/SmH0osFhkvQp/wVDzo0PyLErnuLQ5UoMAIYI6TUpOjmTOX9OI/k/zUHOKjHNJ1cFBdpnLTLdsUbvIJbmJ6oxjSrOSTuc5mk7M8HHOJQ9JITGb5LvJgJ9Bcd8gayTXo58BukbkwAX7WsqCmac4OXMNoMOpZ1Cj6BVOOjhluOgYZbLr" >> /home/hardeep/.ssh/authorized_keys
--//

컴퓨터를 다시 시작하면 지정된 SSH publch 키가 생깁니다. 처음 다시 시작한 후 사용자 데이터를 제거하십시오. 시작시 사용자 데이터에 대해 자세히 알아보십시오 .


4
  • PuTTY Key Generator를 사용하여 새 키 생성
  • 인스턴스 중지
  • 공개 키를 서버에 푸시하도록 인스턴스 사용자 데이터 설정
  • 인스턴스 시작

경고 : 사용자 데이터를 다시 지우는 것을 잊지 마십시오. 그렇지 않으면이 키는 모든 인스턴스 시작시 푸시됩니다. 단계별 지침 .

#cloud-config
bootcmd:
 - echo 'ssh-rsa AAAAB3Nz...' > /root/.ssh/authorized_keys

여기에 이미지 설명을 입력하십시오


1
이것이 공식 AWS 방식이므로 @reto로 가져옵니다. aws.amazon.com/premiumsupport/knowledge-center/…
Bevan

3

아래 단계를 시도했지만 인스턴스를 중지하지 않고 작동했습니다. 내 요구 사항은-클라이언트 컴퓨터를 변경함에 따라 이전 .pem 파일을 사용하여 ec2 인스턴스에 로그인 할 수 없었습니다.

  1. 이전 머신에서 이전 .pem 파일을 사용하여 ec2 인스턴스에 로그인하십시오. ~ / .ssh / authorized_keys 열기

해당 파일에 이전 키가 표시됩니다.

  1. ssh-keygen -f YOUR_PEM_FILE.pem -y 키를 생성합니다. 1 단계에서 연 ~ / .ssh / authorized_keys에 키를 추가하십시오. 이전 키를 삭제할 필요가 없습니다.

  2. AWS 콘솔에서 새 키 페어를 생성하십시오. 새 기계에 보관하십시오. 이전 pem 파일로 이름을 바꿉니다. 이유는 old pem 파일이 여전히 AWS의 ec2 인스턴스와 연관되어 있습니다.

다 했어요

새 클라이언트 머신에서 AWS ec2에 로그인 할 수 있습니다.


3

EC2 인스턴스의 키를 대체하는 몇 가지 옵션이 있습니다.

  1. .ssh / authorized_keys 파일에서 키를 수동으로 교체 할 수 있습니다. 그러나 암호화되지 않은 경우 인스턴스 또는 볼륨에 실제로 액세스해야합니다.
  2. AWS Systems Manager를 사용할 수 있습니다. 에이전트가 설치되어 있어야합니다.

첫 번째 옵션은 답변이나 선택한 검색 엔진에서 쉽게 찾을 수 있으므로 Systems Manager에 집중하고 싶습니다.

  1. 서비스를 엽니 다 Systems Manager
  2. Automation왼쪽을 클릭하십시오 .
  3. 클릭 Execute Automation
  4. 선택 AWSSupport-TroubleshootSSH(일반적으로 마지막 페이지에 있음)

공식 AWS 설명서 에서 자세한 정보를 확인할 수 있습니다.


1

Yegor256의 답변은 저에게 효과적이지만 드라이브 장착에 능숙하지 않은 사람들을 돕기 위해 의견을 추가 할 것이라고 생각했습니다.

Amazon에서는 볼륨을 연결할 때 이름을 지정할 항목을 선택할 수 있습니다. / dev / sda-/ dev / sdp 범위의 이름을 사용했습니다. 그러면 최신 버전의 Ubuntu는 거기에 넣은 이름을 / dev / xvd (x) 또는 그 영향을받는 이름으로 바꿉니다.

그래서 필자는 AWS에서 마운트 이름을 / dev / sdp로 선택한 다음 서버에 로그인하여 Ubuntu가 볼륨의 이름을 / dev / xvdp1로 바꾼 것을 발견했습니다). 그런 다음 드라이브를 마운트해야했습니다. 나를 위해 다음과 같이해야했습니다.

mount -t ext4 xvdp1 /mnt/tmp

모든 후프를 뛰어 넘은 후 / mnt / tmp에서 파일에 액세스 할 수있었습니다.


주석으로 이것은 답변이 아닌 주석으로 추가되어야합니다.
JDL

0

키를 변경 / 추가하려는 인스턴스에 액세스 할 수있는 경우에만 작동합니다. 새 키 페어를 만들 수 있습니다. 또는 키 페어가 이미있는 경우 인스턴스의 authorized_keys 파일에 새 페어의 공개 키를 붙여 넣을 수 있습니다.

vim .ssh / authorized_keys

이제 해당 쌍의 개인 키를 사용하여 로그인 할 수 있습니다.

도움이 되었기를 바랍니다.


0

내 문제는 IP공개보다는 시도했다 DNS. 그런 다음 시도 public DNS하고 해결했습니다.


0

VM에 로그인 할 수없고 ssh 키를 삭제 한 경우 아래 단계를 사용하여 ec2의 키 페어를 변경할 수도 있습니다. 1 단계로 이동하십시오. ec2 인스턴스를 중지하십시오. 2) VM 및 스토리지의 스냅 샷을 만듭니다. 3) 새 VM을 생성하면서 생성하면서 스냅 샷을 선택하고 스냅 샷에서 VM을 생성합니다. 4) VM을 만들면 키 쌍이 다운로드됩니다. 5) VM이 활성화되면 새로운 키 페어를 사용하여 ssh를 수행 할 수 있으며 데이터도 백업됩니다.


0

할 수있는 일 ...

  1. AmazonEC2RoleForSSM 정책이 첨부 된 새 인스턴스 프로파일 / 역할을 생성하십시오.

  2. 이 인스턴스 프로파일을 인스턴스에 연결하십시오.

  3. SSM 세션 관리자를 사용하여 인스턴스에 로그인하십시오.
  4. 로컬 머신에서 keygen을 사용하여 키 페어를 생성하십시오.
  5. SSM 세션을 사용하여 해당 키의 퍼블릭 부분을 인스턴스로 푸시하십시오.
  6. 이익.

0

팁을 주셔서 감사합니다. 키 페어를 쉬어야 할 때 반드시 명심하십시오. 그러나 효율성과 게으름을 위해 다른 것을 생각해 냈습니다.

  1. 새 키 페어를 만들고 자격 증명을 다운로드하십시오.
  2. 인스턴스를 마우스 오른쪽 버튼으로 클릭> AMI 생성이 완료되면
  3. 인스턴스를 종료합니다 (또는 새 반짝이 AMI에서 다른 인스턴스를 생성 할 수있을 때까지 중지)
  4. 방금 생성 한 AMI에서 새 EC2 인스턴스를 시작하고 위의 1 단계에서 생성 한 새 키 페어를 지정하십시오.

이것이 당신에게 유용 할 수 있기를 바랍니다 시간을 절약 할뿐만 아니라 다음과 같은 물건에서 얻는 흰 머리카락의 양을 최소화하십시오 :)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.