SSH 사용중 ssh-keygen -t rsa, ssh-keygen -t dsa 사용중 오류에 대한 증상

*** 검색어: nabiro, ssh, ssh-keygen, rsa, dsa, 정상, sshd_config, /etc/ssh/sshd_config, 연결, 연결 장애, 연결 안됨, 미쳐, 안돼, 궁금, 망막, 비정상, 오류, trust, 트러스트, 비밀번호 없이 

A 서버의 userA 라는 계정이 B 서버의 userB라는 계정으로 ssh, scp, sftp 등의 서비스를 이용하는데 비밀번호 없이 이용하고자 하는 경우 대부분 ssh-keygen 을 이용하여 개인키, 공개키를 생성하여 공개키를 대상 서버인 B 서버의 userB $HOME/.ssh 디렉터리 아래의 authorized_keys 파일에 A 서버에서 생성한 userA의 공개키를 추가하여 연결합니다. 

이때 절차는 아래와 같습니다. 

1. A 서버의 userA 로 아래 작업 실행
   /home/userA/.ssh> ssh-keygen -t rsa [엔터]
   ........  뭐라 나오는데 [엔터]
   ........  뭐라 나오는데 또 [엔터]

이렇게 하면 /home/userA/.ssh 디렉터리에 id_rsa, id_rsa.pub 두개의 파일이 생성됩니다. 
이 파일중 id_rsa.pub 파일을 비밀번호 없이 접속하고자 하는 B 서버의 /home/userB/.ssh 디렉터리 아래로 복사합니다. (이름을 바꿔서 복사하는게 구분하기 좋겠죠)

2. B서버의 userB 계정으로 아래 작업
   /home/userB/.ssh> cat id_rsa.pub >> authorized_keys


이후에 A 서버에서 userA 계정으로 아래의 명령어를 실행해 봅니다. (테스트 목적)
/home/userA/.ssh> ssh 192.168.100.2 uname -n  [엔터]

위에서 192.168.100.2 는  B 서버의 IP 주소입니다. 

정상적이라면 패스워드 묻는 프롬프트 대신 B 서버의 서버명이 표시되어야 합니다. 

여기서부터 집중

다 했는데 안된다... 이런 경우 있씁니다. 
이때는 서버가 rsa 방식이 아니라 dsa 방식을 사용하는 경우를 의심할 수 있습니다. 
AIX 서버의 경우에는 rsa 방식보다 dsa 방식을 이용하는 경우가 많더군요. 

dsa 방식에서 개인키/공개키 생성은 아래의 명령어를 이용합니다. 

ssh-keygen -t dsa

개인키/공개키 생성하는 명령어 말고 나머지는 다 동일합니다. 

두번째 의심해볼 사항

B 서버의 userB 계정의 $HOME 디렉터리 아래의 .ssh 디렉터리 퍼미션이 700인지 확인합니다. 
가끔 .ssh 디렉터리 퍼미션이 700이 아닌 경우 백날 rsa, dsa 해봐야 패스워드 계속 묻습니다. 

이것 찾느라 나름 고생했습니다. (AIA 생명의 김종규씨에게 감사를 드립니다)

또하나의 문제 발견
drwx------    2 was      was            4096  8월 26일 09:28 ./
drwxr-xr-x   13 was      was            4096  8월 26일 09:34 ../
-rw-r--r--    1 was      was             602  8월 26일 09:28 authorized_keys

위 디렉터리의 퍼미션을 보면 ../ 디렉터리의 퍼미션이 755 입니다. 만일 775가 되면 역시 비밀번호 없이 접속이 안되는 현상이 나타납니다.

디렉터리 퍼미션 별것 아닌 줄 알았는데 이럴때는 환장할만큼 중요하군요.




댓글

Designed by JB FACTORY