Это никогда не работало правильно, я не думаю. Я не могу вспомнить, просто вводил пароль все это время. Я управляю десятью серверами с балансировкой нагрузки, но я получаю к ним доступ через внутренний ip. Когда я ssh-copy-id мой ключ к удаленной системе, он выглядит, как будто он успешно аутентифицируется, но все равно запрашивает у меня пароль. Моя папка .ssh имеет perms 600, только known_hosts имеет 644, а другие серверы, на которых работают ключи, имеют такие же perms. /var /log /secure говорит, что это было принято. Все перми в /etc /ssh /* 644. Есть идеи? Заранее спасибо!

**/var/log/secure**
Jul 25 07:30:55 X sshd[25970]: Accepted password for user from 172.29.2.133 port 23423 ssh2
Jul 25 07:30:55 X sshd[25970]: pam_unix(sshd:session): session opened for user user by (uid=0)
Jul 25 07:37:27 X sudo: pam_unix(sudo:auth): conversation failed
Jul 25 07:37:27 X sudo: pam_unix(sudo:auth): auth could not identify password for [user]
Jul 25 07:38:15 X sudo:   user: TTY=pts/1 ; PWD=/home/user ; USER=root ; COMMAND=/usr/bin/less /var/log/secure

**ssh -v output**
OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014                                                            
debug1: Reading configuration data /etc/ssh/ssh_config                                              
debug1: /etc/ssh/ssh_config line 29: Applying options for *                                         
debug1: Connecting to X [172.20.2.131] port 22.                                              
debug1: Connection established.                                                                     
debug1: identity file /home/user/.ssh/id_rsa type 1                                               
debug1: identity file /home/user/.ssh/id_rsa-cert type -1                                         
debug1: identity file /home/user/.ssh/id_dsa type -1                                              
debug1: identity file /home/user/.ssh/id_dsa-cert type -1                                         
debug1: identity file /home/user/.ssh/id_ecdsa type -1                                            
debug1: identity file /home/user/.ssh/id_ecdsa-cert type -1                                       
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0                               
debug1: channel 0: free: client-session, nchannels 1                                                
Connection to X closed.                                                                      
Transferred: sent 11752, received 9832 bytes, in 262.0 seconds                                      
Bytes per second: sent 44.9, received 37.5                                                          
debug1: Exit status 0                                                                               
user@AUR-000229:/mnt/c/Users/user$ ssh -v X
OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014                                                            
debug1: Reading configuration data /etc/ssh/ssh_config                                              
debug1: /etc/ssh/ssh_config line 29: Applying options for *                                         
debug1: Connecting to X [172.20.2.131] port 22.                                              
debug1: Connection established.                                                                     
debug1: identity file /home/user/.ssh/id_rsa type 1                                               
debug1: identity file /home/user/.ssh/id_rsa-cert type -1                                         
debug1: identity file /home/user/.ssh/id_dsa type -1                                              
debug1: identity file /home/user/.ssh/id_dsa-cert type -1                                         
debug1: identity file /home/user/.ssh/id_ecdsa type -1                                            
debug1: identity file /home/user/.ssh/id_ecdsa-cert type -1                                       
debug1: identity file /home/user/.ssh/id_ed25519 type -1                                          
debug1: identity file /home/user/.ssh/id_ed25519-cert type -1                                     
debug1: Enabling compatibility mode for protocol 2.0                                                
debug1: Local version string SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.8                              
debug1: Remote protocol version 2.0, remote software version OpenSSH_4.3                            
debug1: match: OpenSSH_4.3 pat OpenSSH_4* compat 0x00000000                                         
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<3072<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: Server host key: RSA 8a:0f:76:f8:55:e7:65:25:10:ae:f3:d9:3c:dd:48:0a                        
debug1: Host 'X' is known and matches the RSA host key.                                      
debug1: Found key in /home/user/.ssh/known_hosts:10                                               
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                                                        
user@X's password:                                                                         
debug1: Authentication succeeded (password).                                                        
Authenticated to X ([172.20.2.131]:22).                                                      
debug1: channel 0: new [client-session]                                                             
debug1: Entering interactive session.                                                               
debug1: Sending environment.                                                                        
debug1: Sending env LANG = en_US.UTF-8                                                              
Last login: Tue Jul 25 07:26:18 2017 from 172.29.2.133   



**Another server who with the same setup, keys work.**
OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014

debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 29: Applying options for *
debug1: Connecting to X [172.20.2.132] port 22.
debug1: Connection established.
debug1: identity file /home/user/.ssh/id_rsa type 1
debug1: identity file /home/user/.ssh/id_rsa-cert type -1
debug1: identity file /home/user/.ssh/id_dsa type -1
debug1: identity file /home/user/.ssh/id_dsa-cert type -1
debug1: identity file /home/user/.ssh/id_ecdsa type -1
debug1: identity file /home/user/.ssh/id_ecdsa-cert type -1
debug1: identity file /home/user/.ssh/id_ed25519 type -1
debug1: identity file /home/user/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.8
debug1: Remote protocol version 2.0, remote software version OpenSSH_4.3
debug1: match: OpenSSH_4.3 pat OpenSSH_4* compat 0x00000000
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<3072<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: Server host key: RSA 15:5c:e0:96:15:6c:18:85:e8:e8:86:ab:3a:e7:7e:b7
debug1: Host 'X' is known and matches the RSA host key.
debug1: Found key in /home/user/.ssh/known_hosts:25
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,gssapi-with-mic,password
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure.  Minor code may provide more information
No Kerberos credentials available

debug1: Unspecified GSS failure.  Minor code may provide more information
No Kerberos credentials available

debug1: Unspecified GSS failure.  Minor code may provide more information


debug1: Unspecified GSS failure.  Minor code may provide more information
No Kerberos credentials available

debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/user/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: key_parse_private2: missing begin marker
debug1: read PEM private key done: type RSA
debug1: Authentication succeeded (publickey).
Authenticated to X ([172.20.2.132]:22).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
Last login: Tue Jul 25 07:27:19 2017 from 172.29.2.133                  

2 ответа2

1

Никому не противоречить, но если сервер запрашивает только аутентификацию по паролю, ваш клиент не предложит ключ.

В вашей отладке выше:

debug1: аутентификации, которые могут продолжаться: пароль
debug1: следующий метод аутентификации: пароль
пароль пользователя @ X:
debug1: аутентификация прошла успешно (пароль).
Аутентифицирован на X ([172.20.2.131]: 22).

Сервер, к которому вы подключаетесь, не предлагает вам (клиенту) предоставить PSK. Sshd_config сервера должен иметь следующее:

PubkeyAuthentication да

AuthorizedKeysFile .ssh/authorized_keys

Для сравнения, это мой вывод ssh-отладки для сервера, который правильно готов принять аутентификацию с помощью открытого ключа:

debug1: аутентификации, которые могут продолжаться: publickey, клавиатура-интерактив

debug1: следующий метод аутентификации: publickey

debug1: предложение открытого ключа RSA: импортированный-openssh-ключ

debug1: сервер принимает ключ: pkalg rsa-sha2-512 blen 151

debug1: замена шифра CTR от одного к многопоточному - запрос клиента

debug1: аутентификация прошла успешно (publickey).

- извините за плохое форматирование -

0

Как рекомендует Datmocc , проверьте владение файлом author_keys на сервере, а также владение файлом id_rsa локально. Вы также должны убедиться, что только владелец имеет разрешение на чтение (chmod 400 <file>). Посмотрите на вывод журнала для sshd на сервере, когда он запускается, он будет жаловаться, если есть проблема с этими разрешениями.

Журнал отладки для вашего сеанса SSH показывает, что он не предоставляет закрытый ключ для аутентификации (как это предлагается в заголовке вашего вопроса), и, судя по всему, ваш сервер даже не объявляет, что он примет аутентификацию с закрытым ключом. Журнал отладки успешного сеанса аутентификации с закрытым ключом должен содержать что-то вроде:

debug1: Authentications that can continue: publickey,**others
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/user/.ssh/id_rsa
debug1: Server accepts key: pkalg rsa-sha2-512 blen 407
debug1: Authentication succeeded (publickey).

Пока сервер не сообщит , Authentications that can continue: publickey , ваш клиент никогда их не предложит.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .