리눅스 SSH를 이용한 암호없이 로그인 설정
사용목적
Jenkins를 이용하여 A 서버에서 B 서버로 소스배포를 시도하기 위한 목적
설정방법
-
A서버에서 공개키 생성
$ ssh-keygen -t rsa
id_rsa: 비밀키
id_rsa.pub: 공개키
(생성시 물어보는 질문에 계속 엔터키를 누르면 홈 폴더의 .ssh폴더에 공개키와 비밀키 파일이 생성됨) -
A서버 공개키 id_rsa.pub 정보를 B서버 홈 폴더 .ssh authorized_keys 파일내용에 저장.
(만약 서버에 이 파일이 없다면 새로 생성한 뒤 추가) -
파일 권한 수정 (상황에 따라 생략 가능)
$ sudo chmod 0700 ~/.ssh
$ sudo chmod 600 ~/.ssh/authorized_keys
(데몬 설정파일 /etc/ssh/sshd_config을 열어 아래 항목들의 주석을 제거하거나 없는 경우 추가)
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no -
sshd 데몬 재구동
$ sudo service sshd restart -
접속 테스트
$ ssh host@username
설정 이후 동작원리
- 클라이언트에서 비밀키(id_rsa)를 보낸다.
- 서버에서는 클라이언트단에서 공유한 공개키(id_rsa.pub)를 이용하여 비밀키를 해독한다.
에러 모음
ssh_exchange_identification: read: Connection reset by peer 발생시 -v 옵션으로 debug 해보아라 ssh -v wassvc01@ip ‘ls -lrt’
댓글남기기