Назад | Перейти на главную страницу

ssh-аутентификация не позволяет использовать открытый ключ

У меня проблема с аутентификацией SSH на одном из наших тестовых серверов. Я настроил sshd_config правильно, но метод аутентификации показывает только аутентификацию пароля.

[root@[client] ~]# ssh -v [server]  
OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010  
debug1: Reading configuration data /etc/ssh/ssh_config  
debug1: Applying options for *  
debug1: Connecting to [server] [xxx.xx.xx.xxx] port 22.  
debug1: Connection established.  
debug1: permanently_set_uid: 0/0  
debug1: identity file /root/.ssh/identity type -1  
debug1: identity file /root/.ssh/identity-cert type -1  
debug1: identity file /root/.ssh/id_rsa type 1  
debug1: identity file /root/.ssh/id_rsa-cert type -1  
debug1: identity file /root/.ssh/id_dsa type -1  
debug1: identity file /root/.ssh/id_dsa-cert type -1  
debug1: Remote protocol version 2.0, remote software version OpenSSH_4.6  
debug1: match: OpenSSH_4.6 pat OpenSSH_4*  
debug1: Enabling compatibility mode for protocol 2.0  
debug1: Local version string SSH-2.0-OpenSSH_5.3  
debug1: SSH2_MSG_KEXINIT sent  
debug1: SSH2_MSG_KEXINIT received  
debug1: kex: server->client aes128-ctr hmac-md5 none  
debug1: kex: client->server aes128-ctr 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 '[server]' is known and matches the RSA host key.  
debug1: Found key in /root/.ssh/known_hosts:5  
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: password,**  
debug1: Next authentication method: password  
root@[server] password: 

Чего я жду:

debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password because I have set this on my sshd_config:  

Некоторые соответствующие строки из моих sshd_config файл:

PermitRootLogin yes  
PermitRootLogin without-password  
RSAAuthentication yes  
PubkeyAuthentication yes  

Я не знаю, проблема ли это в брандмауэре или на стороне сервера

Мой sshd_config файл:

ListenAddress 199.xx.xx.xx 
Protocol 2 
SyslogFacility AUTHPRIV 
PermitRootLogin yes 
PermitRootLogin without-password 
RSAAuthentication yes 
PubkeyAuthentication yes 
AuthorizedKeysFile .ssh/authorized_keys 
PasswordAuthentication yes 
ChallengeResponseAuthentication no 
GSSAPIAuthentication yes 
GSSAPICleanupCredentials yes 
UsePAM yes

Также некоторые соответствующие разрешения:

drwx------.  2 root root     4096 Sep  1 09:12 .ssh  
-rw-r--r--.  1 root root      235 Aug 12 16:00 .ssh/authorized_keys  

Даже пытался принудительно использовать аутентификацию с открытым ключом, но все еще используется пароль пользователя в качестве аутентификации

ssh -2 -vvv -o PubkeyAuthentication=yes -o RSAAuthentication=yes -o   PasswordAuthentication=yes -o PreferredAuthentications=publickey [server]  




debug3: Wrote 64 bytes for a total of 1277  
debug1: Authentications that can continue: password,  
debug3: start over, passed a different list password,  
debug3: preferred publickey  
debug1: No more authentication methods to try.




var/log/secure  
Sep  3 10:43:09 crewtest sshd[47353]: Connection closed by xx.xx.xx.xx

Я не уверен, но думаю, что параметр AuthorizedKeysFile в вашем sshd_config неверен.

Попробуйте изменить его на:

AuthorizedKeysFile ~/.ssh/authorized_keys 

Похоже, вы используете CentOS или RHEL (в зависимости от того, что ваш файл безопасности /var/log/secure, как указано в комментариях к вопросу). По умолчанию OpenSSH под CentOS имеет очень строгие требования к разрешениям на ~/.ssh каталог и authorized_keys файл.

Установите режим на .ssh/authorized_keys к 600 (-rw-------) и попробуйте снова установить соединение.

 chmod 600 .ssh/authorized_keys