본문으로 바로가기

ssh, scp, rsync 패스워드 없이 접속

category 서버&시스템/Linux 2013. 1. 24. 17:03

구글링한 많은 포스팅에서는 Master/Client라는 용어를 사용하였으나 헷갈려서 사용하지 않았음.

아래 표 순서로 작업 진행.

 

패스워드를 입력하던 시스템 접속 대상 시스템
rsa 혹은 dsa 암호화 방식 key를 생성  
생성된 키의 .pub 파일을 접속 대상 시스템으로 전송  
   .pub 파일 내용을 authorized_keys 파일에 추가
 (방법에 따라 B서버에 접속하여 작업할 필요가 없음)
ssh 등의 명령어로 암호 없이 접속 되는지 확인  

 

$ cd ~/.ssh
$ ssh-keygen -t rsa
Enter file in which to save the key (/root/.ssh/id_rsa): # enter입력
Enter passphrase (empty for no passphrase): # enter입력
Enter same passphrase again: # enter입력

rsa 암호화 방식의 공개키를 생성한다.

id_rsa와 id_rsa.pub라는 파일이 생성된다.

 

$ ssh-copy-id -i id_rsa.pub '-p 포트번호 계정@B서버ip'
$ ssh-copy-id -i id_rsa.pub 계정@B서버ip     # B서버 ssh 포트가 22번일 경우 -p 옵션 생략 가능

위 명령어로 공개키를 접속 대상 서버의 authorized_keys 파일에 바로 편집해 넣을 수 있다.

 

다른 방법은 파일을 직접 전송 후에 B서버에서 홈디렉토리/.ssh/authorized_keys 파일에 직접 pub 파일 내용 전체를 복사해 붙여넣는 것이다(맨 밑줄에 추가).

 

위 작업 후에도 패스워드를 물어보는 경우 확인 사항

 

/etc/ssh/sshd_config 파일 확인

/etc/ssh/sshd_config
...(생략)
26 HostKey /etc/ssh/ssh_host_rsa_key
27 HostKey /etc/ssh/ssh_host_dsa_key
...(생략)
64 PasswordAuthentication yes

위 라인들에 주석처리가 되어 있지 않은지 확인.

수정 후엔 sshd 서비스를 restart 한다.

 

B서버의 .ssh 디렉토리 권한

권한이 700인지 확인한다.

 

/etc/ssh/ssh_host_rsa_key 파일 확인

거의 발생하지 않는 경우.

위 파일 및 같은 경로의 .pub 파일 내용이 ssh-keygen 명령어로 생성한 파일들과 같은지 확인한다.

(여러번 생성한 경우 몇가지 원인에 따라 다를 수 있으므로 같도록 수동으로 편집)

 

dsa 암호화 방식 고려

거의 발생하지 않는 경우.

OS에 따라 rsa 암호화 방식으로는 불가능한 경우가 있다고 한다.