리눅스 서버간 ssh 접속 - linugseu seobeogan ssh jeobsog

Almost-Native

Java 프로그램 개발, IT

Linux 서버간 passwordless SSH 접속이 안되는 원인 찾기 (패스워드 없이 접속 설정방법)

2021. 6. 30. 14:32

서버간 ssh 접속할때 패스워드없이 ssh 접속이 가능하게 설정을 했는데, 이상하게 안되는 경우가 있어서 많이 헤매다가 답을 찾게되어 공유합니다.

아래 화면에서 첫번째는 ssh 접속할때 패스워드를 물어봅니다. 두번째는 패스워드 없이 접속되는 것을 확인할 수 있습니다.

리눅스 서버간 ssh 접속 - linugseu seobeogan ssh jeobsog

원인은 ssh 로 접속하려는 remote 서버의 접속유저(여기서는 grid)의 홈디렉토리 권한(mode) 문제였습니다.

홈디렉토리의 권한에 owner 가 아닌 group 이나 other 쪽에 +w 권한이 있으면 패스워드를 물어봅니다.

이걸 chmod 700 .  이나  chmod 755 .  으로 +w 권한을 빼주면 passwordless 접속이 가능합니다.

리눅스 서버간 ssh 접속 - linugseu seobeogan ssh jeobsog

이 외에도 passwordless 접속이 안되는 경우, /var/log/secure 파일을 보면 원인을 찾을 수 있습니다.

아래처럼, /home/grid 디렉토리의 모드가 bad 해서 거부했다고 나옵니다.

리눅스 서버간 ssh 접속 - linugseu seobeogan ssh jeobsog

참고로, paswordless ssh 설정하는 방법은 아래와 같습니다.

 1> cd ~                       // 해당 유저의 홈디렉토리로 이동
 2> mkdir .ssh                 // .ssh 디렉토리가 없으면 생성
 3> chmod 0700 .ssh            // 이 디렉토리 모드도 중요~ 0700 으로
 4> cd .ssh
 5> ssh-keygen -t rsa          // 키 생성 (그냥 엔터/엔터/엔터~ 만 치면 만들어짐)
 6> ssh-copy-id 192.168.1.171  // 리모트서버로 키 복사
 7> ssh 192.168.1.171            // ssh 테스트