When

SSH로 리모트 서버를 접근할때

Why

서버별로 패스워드를 외워서 접근해야 하는 번거로움이 있기 때문에
이 부분을 공개키 접속으로 생략하고 싶다.

What

ssh admin@my.cloud 만 입력해서 리모트 서버에 접속 가능하다.

나의 경우 커스텀 스크립트를 생성해서 myssh mycloud 명령어로만 접속하여 쓰고있다.

왜냐하면 포트번호나 id_rsa파일 위치가 다른경우 옵션을 서버별로 다 다르게 넣어줘야 하기 때문이다.

이부분은 커스텀SSH 만들기 를 참조하자.


How


# 내 로컬PC에서 비밀키 공개키를 작성한다.
ssh-keygen -t rsa

# 기본생성으로 모두 엔터키를 눌러 작성하면 ~/.ssh 폴더에 두개의 파일이 생성된다.
ls ~/.ssh
> id_rsa
> id_rsa.pub

# 리모트 서버에 방금 생성한 공개키를 복사해준다.
ssh-copy-id -i ~/.ssh/id_rsa.pub admin@my.cloud

# 이제 패스워드 없이 접속이 가능하다.
ssh admin@my.cloud

접속되지 않을경우

  1. 퍼미션 확인

# ssh폴더가 700인지 확인후 아니라면 설정
ls -al ~/.ssh
chmod 700 ~/.ssh

# id_rsa가 600인지 확인후 아니라면 설정
ls -al ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa

# id_rsa.pub 644설정
chmod 644 ~/.ssh/id_rsa.pub

  1. 리모트 서버에 생성한 공개키가 올라가 있는지 확인

cat ~/.ssh/authorized_keys
 > ssh-rsa AAAAB3NzaC1yc2EAA*******contact@chulgil.me

만약 없다면 id_rsa.pub의 내용을 추가한다.