Linux SSH public-private key 인증으로 비밀번호 없이 사용하기

1 minute read

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