OS/공통-명령어

[Tips] ssh 관련 명령어(ssh, scp, rsync) 암호없이 사용하기

투칼론 2019. 9. 15. 23:16
반응형
SSH Key(공개키, 개인키)를 사전에 생성하여 특정 위치에 복사해 놓으면, ssh, scp, rsync와 같은 SSH 프로토콜을 활용하는 명령어를 이용할 때, 비밀번호를 입력하지 않고 편리하게 명령어를 사용할 수 있다.

sshpass 명령어를 활용하면 비밀번호 입력없이 ssh, scp 명령어를 사용할 수 있다. 아래 블로그글을 참조할 것

ssh, scp, rsync 명령어를 사용하는 쪽을 SSH 클라이언트, 해당 명령어의 대상이 되는 즉, sshd가 기동되어 있는 쪽을 SSH 서버라고 할때, 각각 다음과 같은 작업을 해주면 된다.


1. SSH 클라이언트

1) ssh-keygen 명령어를 통해 공개(public)키와 개인(private)키를 생성

예)  rsa 암호화 방식으로 키 생성함

$ ssh-keygen  -t rsa 

위의 명령어 시에 "엔터키"를 치면 디폴트값으로 생성되는데, 결과로 ~/.ssh/  위치에 id_rsa.pub(공개키)와 id_rsa( 개인키) 쌍이 생성됨을 확인할 수 있음


2) ssh-copy-id 명령어를 통해 대상 서버에 공개키(id_rsa.pub) 를 복사함

 예) id_rsa.pub 공개키 파일을 대상서버 testuser 홈디렉터리 아래 .ssh로 복사함

 $ cd  ~/.ssh

 $ ssh-copy-id  id_rsa.pub   testuser@10.xx.xx.xx:~/.ssh


3) 개인키를 복호화 해놓음

 예) id_rsa.pub 공개키 파일을 대상서버 testuser 홈디렉터리 아래 .ssh로 복사함

 $ cp  ~/.ssh/id_rsa  id_rsa.enc

 $ openssl rsa -in ~/.ssh/id_rsa.enc  -out ~/.ssh/id_rsa


4) 디렉터리 및 파일 퍼미션 변경 (보안이유)

 $ chmod 700 ~/.ssh

 $ chmod 600 ~/.ssh/id_rsa

 $ chmod 644 ~/.ssh/id_rsa.pub  

 $ chmod 644 ~/.ssh/authorized_keys

 $ chmod 644 ~/.ssh/known_hosts 



2. SSH 서버


1) 위의 SSH 클라이언트의 2) 작업이 불가능할때 (예, Windows 시스템 등)  authorized_keys  파일에 공개키 추가하기

예) id_rsa.pub 공개키 파일을 대상서버에 복사한 후, authorized_keys 파일에 공개키를 추가함

 $ scp  id_rsa.pub   testuser@10.xx.xx.xx:~/.ssh (SSH 클라이언트에서 실행)

 $ cd  ~/.ssh

 $ cat id_rsa.pub >> authorized_keys



2) 디렉터리 및 파일 퍼미션 변경 (보안이유)

 $ chmod 700 ~/.ssh

 $ chmod 600 ~/.ssh/id_rsa

 $ chmod 644 ~/.ssh/id_rsa.pub  

 $ chmod 644 ~/.ssh/authorized_keys

 $ chmod 644 ~/.ssh/known_hosts