Linux SSH public-private key 인증으로 비밀번호 없이 사용하기
http://www.sdm-studio.it/setup-public-key-authentication-from-mac-to-ubuntu-server/
요기 참고했음
관리할 서버가 늘어나고 스크립트 사용시에 원격 서버에 비밀번호 없이 접속이 되야 편하기 때문에 설정하게 되었다.
1. ssh키 생성하기
여기서 확인(http://memo.polypia.net/archives/2018)
2. 키를 타겟 서버로 카피하기
#클라이언트가 한개인경우 scp ~/.ssh/id_rsa.pub USERNAME@서버주소:.ssh/authorized_keys
#한 서버에 퍼블릭키를 여러개 등록할 경우 추가 방법 #그냥 잘라붙이기 하는거나 마찬가진데 명령어로 넣는 방법이다 cat ~/.ssh/id_rsa.pub | ssh USER@HOST “mkdir -p ~/.ssh && cat » ~/.ssh/authorized_keys”
##디렉토리가 없어서 카피가 실패할 경우.. 타겟서버에 디렉토리 만들기 mkdir ~/.ssh touch ~/.ssh/authorized_keys exit
3. 접속하기 테스트
비밀번호를 안쓰고 SSH 접속이 되면 성공
ssh USERNAME@서버주소
4. 안되는 경우
이런 경우 서버의 .ssh 디렉토리 소유권과 권한을 재설정해본다. chmod 700 ~/.ssh chmod 644 ~/.ssh/authorized_keys ssh 서비스를 재시작 sudo service ssh restart
이렇게 해도 안되면 모르겠다. gg 구글검색
CentOS의 경우 6.x 버전의 selinux버그로 인해 발생하는 문제
http://stackoverflow.com/questions/9741574/redhat-6-oracle-linux-6-is-not-allowing-key-authentication-via-ssh
cd ~ chmod g-w,u-rwx . chmod 700 .ssh cd .ssh chmod 600 * chmod 644 authorized_keys chmod 644 known_hosts chmod 644 config restorecon -R -v ../.ssh
가장 쉬운 해결법인 복붙법. 권한문제는 아니다.
간혹가다가 rsa와 dsa방식중 한가지만 지원하는 서버도 잇다고 하니… 위의 방법이 안먹힌다면 해볼만하다.
5. 비밀번호 로그인 금지(키 로그인만 허용)
##우분투 배포판이 아니라면 경로가 다를 수 있음 $ sudo nano /etc/ssh/sshd_config
##이걸 찾아서 변경 #PasswordAuthentication yes -» PasswordAuthentication no
역시 명령이 다를 수 있음 tab자동완성을 이용하면 좀 달라서 알아서 찾아주기도 하고
아예 다른경우는 알아서
$ sudo service ssh restart