Capstone/Caostone2 - 2020-1학기

[8] scp(ssh) 비밀번호 없이 하기

황썽진 2020. 6. 30. 22:26
반응형

ssh 사용시 매번 비밀번호를 입력하는 것은 귀찮은 일이다. 이번 프로젝트에선 비밀번호를 입력하는 것을 없앰으로 서버로 전송시 바로 전송할수 있도록 하였다.

 

공개키 등록 방식

우선 ~/.ssh/id_rsa.pub에 파일이 존재하는지 확인한다. 없다면 아래와 같이 ssh-keygen을 사용해서 개인용 개인키/공개키를 생성한다.

ssh-keygen -t rsa

위 명령을 입력하면 몇가지를 물어보는데 특별한 이유가 없다면 그냥 엔터를 계속 눌러서 완료하면 된다. 이렇게 생성하고나면 개인키는 ~/.ssh/id_rsa로 공개키는 ~/.ssh/id_rsa.pub로 생성된다.

이제는 공개키를 접속하려는 원격 서버에 등록해야 한다. 아래와 같이 직접 해당 서버로 복사하는 방법이 있다.

scp ~/.ssh/id_rsa.pub [user]@[host]:~/.ssh/authorized_keys

그런데 이렇게하면 기존 파일이 존재할 경우 덮어쓰게 되므로 권장하지 않는다. 대신 아래와 같이 ssh-copy-id를 사용하는 것을 권장한다. ssh-copy-id를 사용하면 원격 서버에 authorized_keys 파일이 없다면 생성해주고 있다면 공개키를 추가해 준다

ssh-copy-id -i ~/.ssh/id_rsa.pub [user]@[host]

여기까지 완료 했다면 비밀번호 없이 ssh 접속이 가능해야 한다. 그런데 간혹 작업을 완료했음에도 불구하고 계속 비밀번호를 물어보는 경우가 있다. 그런 경우는 대부분 원격 서버의 authorized_keys 파일 퍼미션 문제다. 원격 서버에서 퍼미션을 아래와 같은지 확인하고 맞지 않다면 변경해 준다. 대부분의 경우는 접속 문제가 해결된다.

chmod 700 ~/.ssh/
chmod 600 ~/.ssh/authorized_keys

 

 

참고

https://opentutorials.org/module/432/3742

 

SSH Key - 비밀번호 없이 로그인 - 원격제어

SSH Key란? 서버에 접속 할 때 비밀번호 대신 key를 제출하는 방식이다.  SSH Key는 언제 사용하는가? 비밀번호 보다 높은 수준의 보안을 필요로 할 때 로그인 없이 자동으로 서버에 접속 할 때 SSH Key�

opentutorials.org

 

반응형