[리눅스] 키파일을 통한 비밀번호 없는 ssh접속과 디버그
설정방법
우선 로컬와 원격서버 통신을 위해ssh key를 만들어줍니다. 패스워드를 입력해도 되지만 그렇게 되면 패스워드를 너무 자주 입력하게 됩니다.
ssh-keygen -t rsa
이후 3번의 질문을 하는데 각각 키파일명을 어떻게할지와 키파일에 비밀번호를 만들지 비밀번호를 만드는 경우 패스워드 컨펌입니다. 패스워드나 따로 이름을 입력하지 않는다면 엔터를 3번 따닥! 눌러주세요.
디폴트인 id_rsa이름으로 된경우
ssh-copy-id -i ~/.ssh/id_rsa.pub userName@ip주소
서버의 접속 아이디와 ip주소를 입력하여 접속한 후
패스워드를 입력하게되면 정상적으로 키파일을 옮기게 됩니다.
그 후 원격서버에 접속하여 ~/.ssh/authorized_keys 파일이
정상적으로 생성이 되었는지 확인해줍니다.
그 후 ssh userName@ip주소으로 접속하여줍니다.
디버깅노트
만약 계속 패스워드를 묻는다면 ssh -vvvi ~/.ssh/id_rsa.pub userName@ip주소와 같은 형식으로 접속하여 로그를 봅니다.
-v처럼 v가 하나인경우 1depth log -vv 두개인경우 2depth
3개일경우 3depth(max log)를 보여줍니다.
권한설정
원격서버에서 ~/.ssh는 0700, authrozied_key는 0600으로 설정되어있어야 하며 간혹 group이나 other가 더 높게 설정해야하는 경우도 있습니다.
서버측에서의 디버그노트
tail -f /var/log/secure
위 콘솔을 통하여 원격 서버로 들어오는 로그를 확인합니다.
서버 설정
/etc/ssh/sshd_config파일이 ssh configure 파일인데
RSAAuthentication yesPubkeyAuthentication yesAuthorizedKeysFile .ssh/authorized_keys
상단 옵션들이 정상적으로 있는지 확인한 후
service sshd restart
서비스를 재시작하여줍니다.
restorecon
위의 방법들도 안된다면 원격서버에서
restorecon -Rv ~/.ssh 명령어를 입력해줍니다
restorecon의 경우 설정된 내용들을 default로 하여준후 지니다.