EC2 인스턴스에 SSH로 연결하기 위해 둘 이상의 개인 키를 생성 할 수 있습니까? 이것에 대한 일반적인 모범 사례는 무엇입니까? 서버에 SSH를 연결해야하는 여러 사용자가 있으며 하나의 키를 배포하는 것만으로는 효과가 없습니다. 따라서 키를 변경하고 재배포하지 않는 한 사용자가 서버에 SSH를 연결할 수 없도록 할 수 없습니다.
EC2 인스턴스에 SSH로 연결하기 위해 둘 이상의 개인 키를 생성 할 수 있습니까? 이것에 대한 일반적인 모범 사례는 무엇입니까? 서버에 SSH를 연결해야하는 여러 사용자가 있으며 하나의 키를 배포하는 것만으로는 효과가 없습니다. 따라서 키를 변경하고 재배포하지 않는 한 사용자가 서버에 SSH를 연결할 수 없도록 할 수 없습니다.
답변:
물론; 모든 관련 공개 키를 이미지에 넣으면 바로 갈 수 있습니다. 구성 관리 시스템을 사용하여 SSH 키를 관리하는 것을 선호합니다. 이렇게하면 실행중인 시스템에서도 사용자의 액세스 권한을 취소하는 것이 매우 간단합니다. LDAP에 모든 SSH 키를 저장하는 것과 같이 다른 자격 증명과 마찬가지로 SSH 키를 중앙 집중화하는 것과 같이 훨씬 더 많은 ... "상상적인"말로 이것을 처리하는 방법이 있습니다.
표준 ssh 메커니즘을 사용할 수도 있습니다. 가장 좋은 방법은 사용자가 ssh-keygen
자신의 키 페어를 생성하기 위해 컴퓨터 에서 실행하는 것입니다 . 그런 다음 사용자 ~/.ssh/id_rsa.pub
(또는 선택한 알고리즘에 따라 id_dsa.pub) 를 전송 .ssh/authorized_keys
하고 액세스 할 수있는 사용자 계정의 홈 디렉토리에있는 대상 호스트 의 컨텐츠를 추가 합니다. 파일에 둘 이상의 키가있을 수 있습니다. 한 줄에 하나씩. 그리고 그게 다야! 동일한 공개 키 (id_rsa.pub)를 여러 호스트에서 사용할 수 있으며 항상 사용자를 식별합니다.
ssh-keygen을 실행하고 ~ / .ssh / id_rsa (또는 id_dsa)를 사용자에게 게시합니다. 그리고 사용자는 ~ / .ssh / id_rsa에 파일을 저장합니다. 권한을 해당 파일의 600 (-rw -------)으로 변경해야합니다. 그렇지 않으면 ssh가이를 수락하지 않습니다. 개인 키가 아마도 전자 메일을 통해 배포되기 때문에 보안 수준이 낮습니다.
PuTTYgen을 사용하여 PuTTY에서 수행 할 수도 있습니다.
더 간단한 방법은 다음과 같습니다.
Linux / Mac 사용자의 경우 :
공개 및 개인 키를 작성하려면 다음 명령을 사용하십시오.
$ ssh-keygen -t rsa -b 4096
공개 키를 S3 버킷의 폴더에 업로드하십시오. 예를 들어 : S3> MyBucket> Keypair
개인 키를 저장하고 보호하십시오.
Windows 사용자의 경우 :
Linux AMI를 시작하는 동안 다음 단계가 중요합니다.
IAM 역할에 AmazonS3FullAccess 정책으로 생성 된 역할이 있는지 확인하십시오. 이를 통해 인스턴스는 S3 버킷에 액세스하는 역할을 맡을 수 있습니다. 이것은 S3에서 공개 키를 읽고 사용자 프로파일에 복사하는 데 필요합니다.
인스턴스 세부 사항 구성> 고급 세부 사항 (텍스트)의 사용자 데이터 섹션 아래에 다음 코드를 추가하십시오.
#!/bin/bash
usermod user 1
usermod -aG wheel user1
mkdir /home/user1/.ssh/
aws s3 cp s3://MyBucket /Keypair/user1-pub.pub /home/user1/.ssh/authorized_keys
useradd user2
usermod -aG wheel user2
mkdir /home/user2/.ssh/
aws s3 cp s3://MyBucket /Keypair/user2-pub.pub /home/user2/.ssh/authorized_keys
sudo -i
echo “user1 ALL=(ALL) NOPASSWD:ALL” >> /etc/sudoers
echo “user2 ALL=(ALL) NOPASSWD:ALL” >> /etc/sudoers
yum update -y
이 설정은 User1 과 User2를 만들어 sudo 사용자에게 추가합니다 . AWS S3은 cp 명령을 복사 사용자에게 자신의 S3 폴더에서 공개 키 .ssh/authorized_keys path
. 마지막 섹션은 비밀번호없이 관리자로 명령을 실행하는 것입니다.
여기에서 권장 할 수있는 많은 보안 향상 기능이 있습니다. 이 예제에서 명시 적으로 사용되지는 않지만 S3 버킷 액세스를 특정 버킷으로 제한하고 sudo에서 비밀번호 사용을 비활성화하는 보안 영향을 아는 것은 강조 할 수있는 몇 가지 사항입니다. 특정 요구에 따라 현명하게 사용하십시오.