Добавление открытого ключа в ~ / .ssh / authorized_keys не приводит к автоматическому входу в систему - PullRequest
403 голосов
/ 16 июня 2011

Я добавил публичный ключ ssh в файл author_keys. ssh localhost должен войти в систему, не спрашивая пароль.

Я сделал это и попытался набрать ssh localhost, но он все равно просит меня ввести пароль. Есть ли какие-либо другие настройки, через которые мне нужно пройти, чтобы заставить их работать?

Я следовал инструкции по изменению разрешений:

Ниже приведен результат, если я сделаю ssh -v localhost

debug1: Reading configuration data /home/john/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to localhost [127.0.0.1] port 22.
debug1: Connection established.
debug1: identity file /home/john/.ssh/identity type 1
debug1: identity file /home/john/.ssh/id_rsa type -1
debug1: identity file /home/john/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_4.7p1 Debian-8ubuntu3
debug1: match: OpenSSH_4.7p1 Debian-8ubuntu3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_4.7p1 Debian-8ubuntu3
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(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 'localhost' is known and matches the RSA host key.
debug1: Found key in /home/john/.ssh/known_hosts:12
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: Offering public key: /home/john/.ssh/identity
debug1: Server accepts key: pkalg ssh-rsa blen 149
debug1: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>

Затем он запрашивает пароль после вышеуказанного журнала. Почему он не регистрирует меня без пароля?

Ответы [ 28 ]

3 голосов
/ 05 марта 2014

Попробуйте "ssh-add", который работал для меня.

3 голосов
/ 22 февраля 2017

В моем случае мне нужно было поместить мой authorized_keys файл в .openssh.

Это местоположение указывается в /etc/ssh/sshd_config в опции AuthorizedKeysFile %h/.ssh/authorized_keys.

3 голосов
/ 29 апреля 2016

Еще один совет, чтобы запомнить. Начиная с версии 7.0 OpenSSH по умолчанию отключает ssh-ключи DSS / DSA из-за их слабости наследования. Поэтому, если у вас OpenSSH v7.0 +, убедитесь, что ваш ключ не ssh-dss.

Если вы застряли с ключами DSA, вы можете включить поддержку локально, обновите файлы sshd_config и ~/.ssh/config такими строками: PubkeyAcceptedKeyTypes=+ssh-dss

2 голосов
/ 02 февраля 2017

Еще одна проблема, которую вы должны решить. Если ваш сгенерированный файл не по умолчанию id_rsa и id_rsa.pub

Вам необходимо создать файл .ssh / config и вручную определить, какой файл id вы собираетесь использовать с соединением.

Пример здесь:

host remote_host_name
hostname 172.xx.xx.xx
user my_user
IdentityFile /home/my_user/.ssh/my_user_custom.pub
2 голосов
/ 15 ноября 2014

Убедитесь, что у целевого пользователя установлен пароль.Запустите passwd username, чтобы установить его.Это было необходимо для меня, даже если пароль SSH вход был отключен.

1 голос
/ 08 мая 2015

Кажется, проблема с разрешением.Обычно это происходит, если разрешение какого-либо файла / каталога установлено неправильно.В большинстве случаев это ~/.ssh и ~/.ssh/*.В моем случае это /home/xxx.

. Вы можете изменить уровень журнала sshd, изменив /etc/ssh/sshd_config (поиск LogLevel, установите DEBUG), затем проверьте вывод в /var/log/auth.logчтобы увидеть, что именно произошло.

1 голос
/ 01 мая 2015

Я выдал sudo chmod 700 ~/.ssh и chmod 600 ~/.ssh/authorized_keys и chmod go-w $HOME $HOME/.ssh сверху, и это устранило мою проблему на коробке CentOS7, на которой я испортил разрешения при попытке заставить работать общие папки samba. Спасибо

1 голос
/ 21 июня 2015

это решает мою проблему

ssh-agent bash

SSH-добавить

1 голос
/ 19 января 2018

Просто посмотрите на / var / log / auth.log на сервере .Установка дополнительной детализации с помощью -vv на стороне клиента не поможет, поскольку сервер вряд ли предоставит слишком много информации возможному злоумышленнику.

1 голос
/ 04 мая 2018

вам нужно проверить свойства файлов.для назначения требуемого свойства используйте:

$ chmod 600 ~/.ssh/sshKey
$ chmod 644 ~/.ssh/sshKey.pub
...