4

При настройке ключей SSH между двумя компьютерами аутентификация работает только в одном направлении. Один сервер не принимает открытый ключ другого при попытке подключения. Есть идеи? Вот подробный вывод.

debug1: Reading configuration data /usr/local/etc/ssh_config

debug1: Rhosts Authentication disabled, originating port will not be trusted.

debug1: Connecting to xxxxxx.com [xx.xx.xx.xx] port 22.

debug1: Connection established.

debug1: identity file /root/.ssh/identity type -1

debug1: identity file /root/.ssh/id_rsa type 1

debug1: identity file /root/.ssh/id_dsa type -1

debug1: Remote protocol version 2.0, remote software version OpenSSH_5.1p1 Debian-5

debug1: match: OpenSSH_5.1p1 Debian-5 pat OpenSSH*

debug1: Enabling compatibility mode for protocol 2.0

debug1: Local version string SSH-2.0-OpenSSH_3.6.1p2

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 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 'xxxxxx.com' is known and matches the RSA host key.

debug1: Found key in /root/.ssh/known_hosts:17

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

РЕДАКТИРОВАТЬ: Если это имеет значение, это для root

6 ответов6

8

У меня только что был случай, когда SELinux запретил sshd читать файл /root/.ssh/authorized_keys. /var /log /messages покажет вам, что процессу sshd было отказано в доступе для операции чтения в файле author_keys.

После того, как я запустил restorecon -v /root/.ssh/authorized_keys , SSH с открытым ключом работал нормально.

6

Изменение StrictModes на "нет" в /etc/ssh/sshd_config работало для меня.

sysadmin@suselinux1:~> con sysadmin kaiser
Welcome to Ubuntu 12.04.1 LTS (GNU/Linux 3.2.0-25-generic i686)

 * Documentation:  https://help.ubuntu.com/

Last login: Fri Nov  9 15:40:11 2012 from 10.1.3.25
sysadmin@kaiser:~$ date
vie nov  9 17:53:11 CST 2012
sysadmin@kaiser:~$ 
1

Мой ключ не пересылался, оказалось, что я запустил агент SSH в другом окне терминала, поэтому переменная среды $SSH_AUTH_SOCK была недоступна в терминале, в котором я выполнял соединение.

Поэтому, если вы запускаете агент вручную, убедитесь, что вы установили соединение в том же терминальном сеансе.

0

Проверьте значения следующих параметров на сервере ssh:

PubkeyAuthentication Yes
RSAAuthentication Yes
PermitRootLogin Yes
0

Проверьте разрешение и владельца папки .ssh, файла author_key и домашней папки, /var/log/auth.log выдаст вам больше сообщений при попытке входа в систему.

0

В моем случае проблемы были с неправильной оболочкой exec.

journalctl -f
....
Feb 25 11:45:54 59a02b89e0f6 sshd[]: User user not allowed because shell /usr/bin/env /bin/bash does not exist
....

Изменен файл /etc /passwd для этого пользователя

vi /etc/passwd 
....
user:x:1000:1000::/home/user:/bin/bash
....

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