Pem 키 를 생성하지 않고 EC2를 생성해야 보안에 안전해요!!
AWS Systems Manager는 AWS 애플리케이션 및 리소스를 위한 운영 허브이자, 안전한 운영이 대규모로 활성화되는 하이브리드 및 멀티클라우드 환경을 위한 안전한 엔드 투 엔드 관리 솔루션입니다.
https://docs.aws.amazon.com/ko_kr/systems-manager/latest/userguide/what-is-systems-manager.html
EC2 의 IAM Role 에 AmazonSSMManagedInstanceCore 추가 등록
brew install awscli
brew tap dkanejs/aws-session-manager-plugin
brew install aws-session-manager-plugin
- golang으로 개발
- session-manager-plugin을 별도 설치할 필요 없이 프로그램에서 자동으로 다운로드하여 제공하기 때문에 의존성 없이 독립적으로 동작
- 와챠의 개발자 한 분이 오픈소스로 개발
https://github.com/gjbae1212/gossm
# install
brew tap gjbae1212/gossm
brew install gossm
# upgrade
brew upgrade gossm
위의 gossm을 이용하면 Interactive 한 화면이 똭!! 나온다 (멋짐)
- SSM을 이용하면 Pem 키 없이 바로 bash-shell 이 접속됨을 확인할 수 있다.
- 그런데. 파일업로드를 해야 할 경우에는 어떻게 해야 할까?
- 그렇다고 pem키를 다시 등록해야 할까?
- 만약 ~/.ssh/id_rsa.pub 가 없다면 생성을 해주면 됩니다.
아래의 명령어를 이용하여 쉡 접속이 필요한 서버를 찾아 들어갑니다.
gossm start
id_rsa.pub 등록
아래의 경로의 파일에 id_rsa.pub 등록
cd ~/.ssh/authorized_keys
ssh-keygen
참고로 Gitlab 에서는 좀 다르게 생성이 필요합니다. (참고로 기록해둡니다.)
ssh-keygen -t rsa -C "GitLab" -b 4096
scp [FileName] ec2-user@[EC2-InstanceID]:/home/ec2-user
~/.ssh/aws-ssm-ec2-proxy-command.sh
chmod +x ~/.ssh/aws-ssm-ec2-proxy-command.sh
host i-* mi-*
IdentityFile ~/.ssh/id_rsa
ProxyCommand ~/.ssh/aws-ssm-ec2-proxy-command.sh %h %r %p ~/.ssh/id_rsa.pub
StrictHostKeyChecking no
ssh <INSTACEC_USER>@<INSTANCE_ID>