SSH: ssh-agent ssh 키등록 및 git 연결

git 연결시 인증으로 ssh를 자주 쓴다.

ssh 키를 쓰기 위해서는 .ssh 폴더에 기본적인 설정이 되어있어야 하며, 설정된 키를 구분하기 쉽게 github 같은 서버에 잘 등록해야 한다.

본인은 mac을 메인으로 사용하며, AWS에서 EC2를 종종사용한다.

mac에는 기본적인 스크립트를 관리하고 있었으나, 이번에 블로그를 하면서 다 기록하려 한다.

AWS에서 어떻게 설정하는지 기록한다.

#1. ssh agent Daemon 실행

eval `ssh-agent`
Agent pid 31427

#2. ssh key 추가

ssh-add ./id_rsa
Identity added: ./id_rsa (ec2-user@ip-10-23-140-229.ap-northeast-2.compute.internal)

#3. id_rsa.pub를 서버에 등록

git clone git@github.com:e-ㅁㄷㄹ/ㅁㄷㄹㅁㄷㄹㅁㄷㄹ.git
Cloning into 'ㅁㄷㄹㅁㄷㄹㅁㄷㄹ'...
ssh: connect to host github.com port 22: Connection timed out
fatal: Could not read from remote repository.

포트가 이상하다. 왠 22(ssh)

#4. 안된다.

테스트 접속을 실행한다.

ssh -T git@github.com

시간이 오래걸리는 것을 보니 타임아웃이다.

ssh: connect to host github.com port 22: Connection timed out

검색해보면 ssh.github.com 과 443프토를 이용하라고 한다.

.ssh/config 파일을 설정한다.

Host github.com
    User git
    Hostname ssh.github.com
    Port 443
    IdentityFile ~/.ssh/id_rsa

github.com 으로 선정된 repository의 경우 config 에 있는 정보를 쓰라고 변경한다.

ssh: connect to host ssh.github.com port 443: Connection timed out
fatal: Could not read from remote repository.

Okay. 바뀌긴 하는데 접속이 안된다. Outbound라서 무조건 될 것으로 생각했으나 안된다. 외부 접속 routing table을 점검한다.

AWS VPC에서 보안처리를 위해서 Private subnet을 쓰라는 권장에 따라서 private subnet에 두었으나, NAT gateway 비용을 내기 싫어서 제거해두었었다.

NAT gateway를 생성하고 routing table에 할당한다.

[ec2-user@ip-10-0-12-22 .ssh]$ ssh -T git@github.com
The authenticity of host '[ssh.github.com]:443 ([20.200.245.248]:443)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3ㄹㄹㄹㄷㄹㄷㄹisF/zㄷㄹㄷkr4UvCOqU.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[ssh.github.com]:443' (ED25519) to the list of known hosts.
Hi e-tine! You've successfully authenticated, but GitHub does not provide shell access.

[ec2-user@ip-10-0-140-229 ~]$ git clone git@github.com:e-ㄷㄷ/ㄷㄷㄷ_server.git
Cloning into 'ㄷㄷㄷ_server'...
remote: Enumerating objects: 43, done.
remote: Counting objects: 100% (43/43), done.
remote: Compressing objects: 100% (32/32), done.
remote: Total 43 (delta 6), reused 43 (delta 6), pack-reused 0
Receiving objects: 100% (43/43), 15.82 KiB | 3.16 MiB/s, done.
Resolving deltas: 100% (6/6), done.

#5. 잘 된다.

dev.every-handy.com
dev.e-tine.com
SW dev.
DevOps

전체 과정 블로그 /aws-ec2-mariadb-환경-설정