Я пытаюсь настроить SSH-вход без пароля на CentOS 5.4:
- Я сгенерировал открытый ключ RSA на клиенте.
- ssh-copy-id от клиента к серверу.
- Проверено ~ / .ssh / authorized_keys содержит ключ клиента.
Клиент по-прежнему запрашивает пароль. Что я пропустил?
Благодарю.
РЕДАКТИРОВАТЬ: проверил ssh_config и разрешения, как советовали. Это отладочная информация от клиента:
debug2: key: /home/saguna/.ssh/identity ((nil))
debug2: key: /home/saguna/.ssh/id_rsa (0x2b31921be9a0)
debug2: key: /home/saguna/.ssh/id_dsa ((nil))
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug3: start over, passed a different list publickey,gssapi-with-mic,password
debug3: preferred gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup gssapi-with-mic
debug3: remaining preferred: publickey,keyboard-interactive,password
debug3: authmethod_is_enabled gssapi-with-mic
debug1: Next authentication method: gssapi-with-mic
debug3: Trying to reverse map address 192.168.1.75.
debug1: Unspecified GSS failure. Minor code may provide more information
Unknown code krb5 195
debug1: Unspecified GSS failure. Minor code may provide more information
Unknown code krb5 195
debug1: Unspecified GSS failure. Minor code may provide more information
Unknown code krb5 195
debug2: we did not send a packet, disable method
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /home/saguna/.ssh/identity
debug3: no such identity: /home/saguna/.ssh/identity
debug1: Offering public key: /home/saguna/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug1: Trying private key: /home/saguna/.ssh/id_dsa
debug3: no such identity: /home/saguna/.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
saguna@192.168.1.75's password:
Ответы:
9/10 раз, потому что ~ / .ssh / authorized_keys не в правильном режиме.
источник
~/.ssh
каталог и каталоги не могут быть записаны кем-либо, кроме пользователя.Зайдите в / etc / ssh / sshd_config, чтобы разрешить аутентификацию с ключом. У вас должно быть что-то вроде этого, и убедитесь, что строки не закомментированы:
PS: не забудьте перезапустить sshd после изменения файла (/etc/init.d/sshd restart)
источник
AuthorizedKeysFile
было закомментировано, и мне также пришлось использовать абсолютный путь кauthorized_keys
.Я обнаружил, что проблема с моей системой заключалась в том, что каталог пользователя (/ home / username) был неправильно настроен. Это было
drwxr-x-w-
и должно было бытьdrwxr-xr-x
(с разрешением на запись только для владельца). Решением было использовать chmod:источник
Я здесь не эксперт, но тоже сталкивался с такой проблемой, вот мои два цента в дополнение ко всем другим предложениям.
Иногда
ssh-copy-id
копирует неправильный ключ на удаленный сервер (это может произойти, если у вас есть несколько ключей и / или вы используете нестандартные имена для файлов ключей), или ваш агент аутентификации неверно настроен.Вот цитата из справочных страниц :
В общем, вы хотите проверить, что:
ssh-add -L
вывод)ssh-copy-id
Скопировал тот же ключ к удаленной машине (только войти на удаленный сервер с помощью пароля и проверить содержимое~/.ssh/authorized_keys
)ssh-copy-id
какой ключ копировать:ssh-copy-id -i ~/.ssh/some_public_key
Надеюсь, это поможет.
источник
ssh-copy-id
проблема:,DEFAULT_PUB_ID_FILE=$(ls -t ${HOME}/.ssh/id*.pub 2>/dev/null | grep -v -- '-cert.pub$' | head -n 1)
который по умолчанию будет алфавитный первый ключ - в моем случае у меня былid_boot2docker.pub
(который, по-видимому, имя по умолчанию для boot2docker ssh вещи). Похоже, есть множество различных реализаций ssh-copy-id; пришел мойbrew install ssh-copy-id
, который в свою очередь взят из openssh-portable. Моя страницаНаиболее распространенная проблема - неверные разрешения на стороне сервера. Проверьте , что ни один из вашей домашней директории,
~/.ssh
и~/.ssh/authorized_keys
могут быть перезаписаны любым , но вы (в частности , они не должны быть группой перезаписываемые).Если это не проблема, запустите
ssh -vvv server
и посмотрите на мнение клиента о разговоре. В частности, проверьте, что клиент пытается ключ с сервером.источник
~/.ssh
и~/.ssh/authorized_keys
не может быть записываемые никем , кроме вас.В дополнение ко всему вышесказанному всегда можно проверить файл журнала sshd:
источник
Я попробовал другие исправления, но обнаружил, что мне пришлось изменить домашний каталог, чтобы другие пользователи не могли его записать. Домашний каталог был 777. Я изменил его на 755, и он работал.
источник
в моем случае / etc / ssh / sshd_config содержал следующий параметр:
Но ssh-copy-id создал файл с именем author_keys, поэтому мне пришлось изменить запись на новое имя. больше информации о устаревших авторизованных ключах
источник
В качестве дополнения к ответу Омера Дагана для новой CentOS 7 используйте:
для просмотра логов sshd на сервере.
источник
Проблема была в том, что у меня отключена аутентификация RSA в / etc / ssh / ssh_config
источник