tom
(분명히) 원격 서버에는 존재하지만 로컬 서버에는 존재하지 않기 때문에 원격 서버에 연결하고 있습니다 .
id_rsa.pub
로컬 사용자 생성 키를 bob
원격 서버에 있는 Tom의 파일 에 복사 했습니다 . authorized_keys
하지만 여전히 비밀번호를 묻는 메시지가 나타납니다.
[bob@localserver ~]$ ssh tom@remoteserver
편집 1
완벽함을 위해 키를 다시 생성하여 원격 서버에 복사하기도 했습니다.
ssh-keygen -t rsa
ssh-copy-id -i tom@REMOTESERVER
여기에서 디버그 출력을 참조하세요. SSH 디버깅 세부정보
디버그 출력에서 다음을 발견했습니다. 내 개인 키 파일 id_rsa
의 모든 줄(base64 블록?)에 대해 다음 콘텐츠가 존재합니다 .
debug3: key_read: missing whitespace
편집 2:
원격 서버 권한:
drwx------ 2 tom tom 4096 Aug 15 10:59 .
drwx------ 5 tom tom 4096 Aug 15 11:54 ..
-rw-rw-r-- 1 tom tom 810 Aug 15 10:59 authorized_keys
-rwx------ 1 tom tom 109 Aug 14 09:43 config
-rw------- 1 tom tom 1675 Aug 8 14:58 id_rsa
-rw-r--r-- 1 tom tom 404 Aug 8 14:58 id_rsa.pub
-rw-r--r-- 1 tom tom 1217 Aug 10 09:32 known_hosts
로컬 서버 권한:
drwx------ 2 bob bob 4096 Aug 15 11:32 .
drwx------ 7 bob bob 4096 Aug 15 11:32 ..
-rw------- 1 bob bob 1613 Aug 15 11:09 id_rsa
-rw------- 1 bob bob 1675 Aug 15 11:08 id_rsa.bkp
-rw-r--r-- 1 bob bob 405 Aug 15 10:58 id_rsa.pub
-rw-r--r-- 1 bob bob 410 Aug 15 10:59 known_hosts
답변1
출력에는 다음이 ssh -vv tom@remoteserver
포함됩니다.
debug1: Offering public key: /home/bob/.ssh/id_rsa
이 시점에서 클라이언트는 개인 키를 찾고 이를 사용하여 인증을 시도합니다. - 그런데 그섬기는 사람그렇게 하지 마십시오. 이유를 찾을 수 있다섬기는 사람통나무.
추측: 파일 권한 문제가 있습니다.
서버에 대한 올바른 권한을 다시 확인하세요 ls -la ~/.ssh
. 더 좋은 점은 ssh-copy-id
공개 키를 원격 서버에 복사하는 것입니다. 올바른 권한을 처리합니다.
man sshd_config
설명하다:
StrictModes
Specifies whether sshd(8) should check file modes and ownership of the
user's files and home directory before accepting login. This is nor‐
mally desirable because novices sometimes accidentally leave their
directory or files world-writable. The default is ``yes''. Note that
this does not apply to ChrootDirectory, whose permissions and ownership
are checked unconditionally.
기본적으로 사용자 자신만이 읽고 쓸 수 있어야 합니다 ~/.ssh
.
답변2
원격 호스트의authorized_keys 파일에 권한 600을 사용해 보십시오. 644도 괜찮지만 그룹 및/또는 쓰기 가능해서는 안 됩니다.
유용한 링크: