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

ssh publickey не работает

ОБНОВЛЕНИЕ: я решил эту странную проблему, просто перезапустив sshd. Однако мне все еще интересно, почему, потому что я не менял никаких конфигураций с момента запуска сервера.

У меня 2 сервера, на одном установлена ​​CentOS 5, а на другом CentOS 6. ssh publickey отлично работает на CentOS 5, но не работает на CentOS 6. Я подтвердил разрешения .ssh каталог, это нормально.

[root@localhost ~]# ls -Z .ssh/
drwxr-xr-x. root root unconfined_u:object_r:ssh_home_t:s0 .
dr-xr-x---. root root system_u:object_r:admin_home_t:s0 ..
-rw-r--r--. root root unconfined_u:object_r:ssh_home_t:s0 authorized_keys
-rw-------. root root unconfined_u:object_r:ssh_home_t:s0 id_rsa
-rw-r--r--. root root unconfined_u:object_r:ssh_home_t:s0 id_rsa.pub
-rw-r--r--. root root unconfined_u:object_r:ssh_home_t:s0 known_hosts

ОБНОВЛЕНИЕ: я пробовал несколько разрешений, в том числе 600, 644 для authorized_keys, и 700, 755 для .ssh/, все они не работают.

ssh -vvv дает это сообщение

debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug3: start over, passed a different list publickey,gssapi-keyex,gssapi-with-mic,password
debug3: preferred publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/zuohaocheng/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Trying private key: /Users/zuohaocheng/.ssh/id_dsa
debug3: no such identity: /Users/zuohaocheng/.ssh/id_dsa
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password

Все в sshd_config по умолчанию. Также я скопировал публичный ключ через ssh-copy-id.

Если вы используете selinux, это может быть проблемой. Тип каталога .ssh и файлов под ним должен быть ssh_home_t. Вы можете проверить с помощью ls -Z и восстановить с помощью restorecon -Rv .ssh.

В / var / log / secure также могут быть более подробные сообщения об ошибках.

Какие разрешения на ~/ (ваш домашний каталог)? Вы не можете разрешить разрешения на любом уровне, которые позволили бы другим перезаписать ваш ~/.ssh каталог. Если ваш домашний каталог более разрешен, чем 755, вам будет предложено ввести пароль.

Права доступа к каталогу / файлу должны выглядеть следующим образом:

chmod 700 ~/.ssh 
chmod 644 ~/.ssh/authorized_keys
chmod 644 ~/.ssh/known_hosts
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub 

ls -l ~/.ssh должен показать вам разрешения chmod. Проверить, если PermitRootLogin Yes включен, поскольку вы копируете ключ pub, сгенерированный в корневом каталоге .ssh. Это могло вызвать проблему.

У вас неправильное разрешение на authorized_keys. Вы должны отключить разрешение на чтение для группы и других.

Разрешение на authorized_keys должно быть 600, чтобы аутентификация с открытым ключом работала.

Я сталкиваюсь с той же проблемой, и оказывается, что это связано с тем, что я переместил свой домашний каталог на другой диск (из-за недостатка места), а настройкам безопасности по умолчанию не нравится это новое место, поэтому я не могу или не буду найти мой каталог .ssh. Пытаюсь придумать обновить настройки ssh_home_t.