SSH 키 복사, 암호 없는 자동 로그인
로컬 호스트의 SSH 공개키를 리모트 호스트에 등록하면,
해당 리모트 호스트에 암호 없이 로그인 할 수 있습니다.
키 생성하기
https://zetawiki.com/wiki/리눅스_ssh-keygen
키 복사하기
리모트 호스트에 로컬 호스트의 공개키 복사하기
방법 1. ssh-copy-id 이용
자주 사용하는 SSH 호스트 alias 설정을 통해 서버 목록파일이 설정된 경우
ssh-copy-id exp-01
(참고) https://zetawiki.com/wiki/리눅스_ssh-copy-id
(참고) https://zetawiki.com/wiki/리눅스_SSH_패스워드_없이_자동_로그인
방법 2. 직접 등록
(1번째 줄) gildong 호스트의 공개키를 터미널에 출력하여 Ctrl C 로 복사
(3번째 줄) exp-01 호스트에 접속
(5번째 줄) exp-01 호스트의 허용된 공개키 목록(authorized_keys)을 vi 로 열어, 1번째 줄에서 복사한 내용을 붙여넣기
gildong ~$ cat ~/.ssh/id_rsa.pub gildong ~$ ssh exp-01 exp-01 ~$ vi ~/.ssh/authorized_keys
여러 리모트 서버에 한번에 키 등록하기
여러 호스트의 암호가 동일한 경우, 로컬호스트의 키를 리모트 호스트에 한번에 등록할 수 있음
보안상 문제가 될 수 있으니, key를 등록한 이후 pass.txt 는 삭제할 것
pass.txt
YOUR_PASSWORD
copy-key.sh
sshpass -f pass.txt ssh-copy-id log-01 sshpass -f pass.txt ssh-copy-id log-02 sshpass -f pass.txt ssh-copy-id log-03 sshpass -f pass.txt ssh-copy-id exp-01 sshpass -f pass.txt ssh-copy-id exp-02 sshpass -f pass.txt ssh-copy-id exp-03
./copy-key.sh
(참고) https://zetawiki.com/wiki/리눅스_sshpass_사용법
(참고) 다수의 호스트에 키 등록을 안전하게 하려면 ansible 과 ansible vault 를 이용하면 됨
보안 유의사항
해당 호스트가 해킹되면, 다수의 리모트 호스트에 암호 없이 접속이 가능합니다. 해당 호스트의 보안에 각별히 유의해야 합니다.