Programming

EC2 인스턴스의 키 페어 변경

procodes 2020. 2. 27. 22:28
반응형

EC2 인스턴스의 키 페어 변경


AWS Management Console에서 EC2 인스턴스의 키 페어를 어떻게 변경합니까? 인스턴스를 중지하고 새 키 페어를 만들 수 있지만 인스턴스의 키 페어를 수정할 수있는 링크가 표시되지 않습니다.


그냥 이렇게 : 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파일을 사용하여 이전과 같이 로그인

그게 다야.


인스턴스가 시작되면 메타 데이터 수준에서 인스턴스와 관련된 키 페어를 변경할 수있는 방법은 없지만 인스턴스에 연결하기 위해 사용하는 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

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


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

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 볼륨의 키를 변경 한 후 이전 인스턴스에 다시 연결하는 것보다)을 실행 한 후 작업 인스턴스에 다시 연결하십시오.


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

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

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

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

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


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

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

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

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

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


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

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

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


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

  1. 원래 인스턴스의 AMI 이미지를 만듭니다.
  2. 새 키 페어와 함께 AMI 이미지 (1 단계)를 사용하여 새 EC2 인스턴스를 시작하십시오.
  3. 새 키를 사용하여 새 EC2 인스턴스에 로그인하십시오.

가장 간단한 해결책은

~/.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

루트 장치를 회전하거나 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 키가 있습니다. 처음 다시 시작한 후 사용자 데이터를 제거하십시오. 시작시 사용자 데이터에 대해 자세히 알아보십시오 .


아래 단계를 시도했지만 인스턴스를 중지하지 않고 작동했습니다. 내 요구 사항은-클라이언트 컴퓨터를 변경함에 따라 이전 .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에 로그인 할 수 있습니다.


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

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

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

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

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


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

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

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

mount -t ext4 xvdp1 /mnt/tmp

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


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

vim .ssh / authorized_keys

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

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


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


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

참고 URL : https://stackoverflow.com/questions/7881469/change-key-pair-for-ec2-instance



반응형