[ssh] ec2 인스턴스의 키 쌍 변경



Answers

인스턴스가 시작되면 메타 데이터 수준에서 인스턴스와 연결된 키 쌍을 변경할 수 없지만 인스턴스에 연결할 때 사용하는 ssh 키는 변경할 수 있습니다.

대부분의 AMI에는 공개 ssh 키를 다운로드하고 .ssh / authorized_keys 파일에 설치하여 해당 개인 ssh 키를 사용하여 해당 사용자로 ssh 할 수있는 시작 프로세스가 있습니다.

인스턴스에 액세스하기 위해 사용하는 ssh 키를 변경하려면 인스턴스 자체에서 authorized_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이 키 쌍을 생성하는 대신 EC2에 개인 ssh 공개 키를 업로드하는 것이 좋습니다.

여기에 대해 내가 쓴 기사가있다.

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

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

Question

AWS 관리 콘솔에서 내 ec2 인스턴스의 키 쌍을 어떻게 변경합니까? 인스턴스를 중지 할 수 있지만 새 키 쌍을 만들 수 있지만 인스턴스의 키 쌍을 수정하는 링크가 표시되지 않습니다.




나는 Elastic Beanstalk에서 관리 할 때 활성 EC2 키 쌍을 변경할 있음을 확인했습니다. Elastic Beanstalk> Configuration> Security에서 EC2 키 쌍 드롭 다운에서 새 키를 선택하십시오. 확실한지 묻는 메시지가 나타납니다.

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

이 작업을 수행 할 때 인스턴스가 이미 종료되었습니다. 그런 다음 시작, 종료 및 다시 시작되었습니다. 분명히 "대체"는 새로운 인스턴스를 종료하고 생성하는 것을 의미합니다. 부트 볼륨을 수정 한 경우 먼저 AMI를 작성한 다음 동일한 Elastic Beanstalk> Configuration> Instances 양식에서 AMI를 Custom AMI ID로 지정하십시오 . 또한 EC2 인스턴스 교체에 대해 경고합니다.

EC2 키 쌍 및 사용자 정의 AMI ID를 수정 한 후 두 가지에 대한 경고가 표시된 후에 저장 을 클릭하여 계속하십시오.

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




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

vim .ssh / authorized_keys

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

희망이 도움이됩니다.




아래 단계를 시도해 본 결과 인스턴스를 중지하지 않고 작업했습니다. 내 요구 사항은 - 클라이언트 컴퓨터를 변경했기 때문에 이전 .pem 파일에서 ec2 인스턴스에 로그인 할 수 없었습니다.

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

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

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

  2. AWS 콘솔에서 새 키 쌍을 만듭니다. 그것을 새로운 기계에 보관하십시오. 이전 pem 파일로 이름을 바꿉니다. 이유는 오래된 pem 파일이 AWS의 ec2 인스턴스와 여전히 연관되어 있습니다.

모두 완료되었습니다.

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




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

  • 탄력있는 콩나무 패널
  • 구성
  • 인스턴스 (톱니 우측 상단)
  • EC2 키 쌍

그러면 현재 인스턴스가 종료되고 선택한 키 / 설정으로 새 인스턴스가 만들어집니다.




AWS EC2 지원 지침 :

  1. Pem 로그인 변경
  2. EC2 콘솔로 이동
  3. 네트워크 및 보안에서 키 쌍을 클릭하십시오. 키 쌍 생성을 클릭하십시오.
  4. 새 키 쌍에 이름을 지정하고 .pem 파일을 저장하십시오. 키 쌍의 이름은 인스턴스에 연결하는 데 사용됩니다.
  5. 인스턴스에 대한 SSH 연결을 생성하고 열린 상태로 유지하십시오.
  6. PuttyGen에서 "로드"를 클릭하여 .pem 파일을로드하십시오.
  7. SSH-2 RSA 라디오 버튼을 선택 상태로 유지하십시오. "개인 키 저장"을 클릭하십시오. 팝업 창이 뜨고 "예"를 클릭하십시오.
  8. 공개 키를 생성하려면 "공개 키 저장"을 클릭하십시오. 이것은 현재 인스턴스로 복사 할 공개 키입니다.
  9. 새 키 쌍 이름과 .pub 확장명을 사용하여 공개 키를 저장합니다.
  10. 메모장에서 공개 키 내용을 엽니 다.
  11. 아래 내용을 복사하십시오. "Comment :"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 할 수 있음을 확인하면 vi .ssh / authorized_key를 수행하고 이전 키를 삭제할 수 있습니다.

Shaggie 발언에 대한 답변 :

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






Links