관리 메뉴

개발노트

scp(ssh) 비밀번호 없이 하기 본문

인프라

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

YoonGwon 2022. 9. 22. 16:12

https://sj-d.tistory.com/m/27

 

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

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

sj-d.tistory.com

 

ssh 사용시 매번 비밀번호를 입력하는 것은 귀찮은 일이다. 위 블로그를 참조해 기록을 남겨보려한다.

 

내부적으로 NAS 서버 없이 웹에서 이미지파일 등록시 이중화된 서버간 통신으로 파일을 동기화 해주는 작업을하려는데 매번 비밀번호를 입력하는 것을 없앰으로 서버로 전송시 바로 전송할수 있도록 하였다.

 

공개키 등록 방식

우선 ~/.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://confluence.curvc.com/pages/releaseview.action?pageId=79004027

728x90