표준 절차를 따른 후에도 비밀번호 없는 SSH를 수행할 수 없습니다.

표준 절차를 따른 후에도 비밀번호 없는 SSH를 수행할 수 없습니다.

저는 Interface(10.1.1.87)와 Client-Interface(10.1.1.91)라는 두 개의 시스템을 가지고 있습니다. 부팅 시 클라이언트 인터페이스에서 sshfs 공유를 자동으로 마운트하고 싶습니다.

나는 다음 명령을 사용하고 있습니다 :

sshfs [email protected]:/opt/lampp/ /media/CIDrive/ -o allow_other

그런데 비밀번호를 물어보네요. 비밀번호를 없애기 위해 다음을 시도했습니다.

  1. 루트로 인터페이스에 로그인합니다.

    # ssh-keygen -t rsa
    # chmod 700 ~/.ssh
    # cat ~/.ssh/id_rsa.pub | ssh [email protected] 'cat > .ssh/authorized_keys'
    
  2. 클라이언트 인터페이스에서 sshd_config파일에 다음을 추가합니다.

    RSAAuthentication yes
    PubkeyAuthentication yes
    StrictModes no
    

SSH 데몬을 다시 시작하십시오. 그래도 비밀번호를 묻습니다.

root@JMGDDS-Interface:~# ssh -v [email protected]
OpenSSH_5.1p1 Debian-3ubuntu1, OpenSSL 0.9.8g 19 Oct 2007
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to 10.1.1.91 [10.1.1.91] port 22.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file /root/.ssh/identity type -1
debug1: identity file /root/.ssh/id_rsa type 1
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048
debug1: identity file /root/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.1p1 Debian-3ubuntu1
debug1: match: OpenSSH_5.1p1 Debian-3ubuntu1 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.1p1 Debian-3ubuntu1
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-cbc hmac-md5 none
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host '10.1.1.91' is known and matches the RSA host key.
debug1: Found key in /root/.ssh/known_hosts:2
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /root/.ssh/identity
debug1: Offering public key: /root/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /root/.ssh/id_dsa
debug1: Next authentication method: password
[email protected]'s password:

폴더의 권한은 700 .ssh입니다 . 가능한 이유는 무엇입니까? 어떻게 해결할 수 있나요?.pubauthorized_keys

답변1

최근에는 확인하지 않았지만 .ssh 경로에 누구나 쓰기 가능한 디렉터리가 있으면 SSH는 그 안에 있는 인증된 키 사용을 거부합니다. 이러한 권한을 통해 다른 사용자가 귀하의 .ssh 디렉터리를 위조할 수 있습니다.

다른 사람이 홈 디렉토리에 쓸 수 있는 경우 StrictModes를 끄지 않으면 홈 디렉토리가 사용되지 않습니다.

답변2

로컬 컴퓨터에 모드 600의 파일이 있고 ~/.ssh/id_dsa로컬 콘텐츠가 ~/.ssh/id_dsa.pub원격 파일에도 있는지 확인하십시오 ~/.ssh/authorized_keys.

id_dsa귀하의 로그에 따르면 이것이 귀하의 개인 키 중 하나이기 때문에 이렇게 말하는 것입니다 (귀하도 identity개인 키를 가지고 있음). 어쩌면 아래 에서 사용할 ~/.ssh/configPrivateKey를 지정할 수도 있습니다 Host your.server.here. ~/.ssh/id_rsa또는 ~/.ssh/id_rsarsa 키 쌍이 있는지 확인할 수 있습니다.

(사용 가능한 경우) 을 사용하는 것은 ssh_copy_id -i ~/.ssh/id_dsa.pub user@host키 쌍을 설정하는 또 다른 방법이며 권한 등도 처리합니다.

답변3

.ssh/호스트 10.1.1.91의 디렉터리 및 파일에 대한 권한을 확인하세요. .ssh/authorized_keys 해당 호스트의 sshd가 해당 측의 권한을 좋아하지 않을 수도 있습니다.

답변4

디버그 모드에서 서버를 실행합니다.

서버에서 루트로:

# /etc/init.d/ssh stop
# /usr/sbin/sshd -ddd

이제 클라이언트를 연결하고 서버의 디버그 출력을 읽습니다. 왜 들어갈 수 없는지 알려줄 것입니다. 어떤 문제라도 바로잡아라저것예.

RedHat(또는 Fedora)을 실행 중이라면,pam_fprintd가 설치되지 않은 문제.

관련 정보