ssh больше не разрешает проверку открытого ключа

22

Моя машина недавно перестала принимать входящие аутентификации открытого ключа. У меня есть рабочий стол ubuntu 11.04, который я схожу с Windows-машины. Я использую шпатлевку с конкурсом. Я могу подключиться, но только с интерактивной аутентификацией пароля, а не с моим ключом rsa, который у меня установлен.

Я уже проверил, что ключ указан в ~ / .ssh / authorized_keys. Как это исправить и что я проверю?

    
задан Andrew Redd 19.10.2011 в 21:27
источник

9 ответов

28

Если аутентификация с открытым ключом не работает: убедитесь, что на стороне сервера ваш домашний каталог ( ~ ), каталог ~/.ssh и файл ~/.ssh/authorized_keys доступны для записи только при помощи их владелец . В частности, ни одна из них не должна быть доступна для записи группой (даже если пользователь одинок в группе). chmod 755 или chmod 700 в порядке, chmod 770 - нет.

Что нужно проверить, если что-то не так:

  • Запустите ssh -vvv , чтобы увидеть много отладочного вывода. Если вы зададите вопрос, почему вы не можете подключиться к ssh, включите этот вывод (вы можете анонимизировать имена хостов и пользователей).
  • Если вы можете, проверьте журналы сервера в /var/log/auth.log .
  • Если аутентификация с открытым ключом не работает, проверьте разрешения снова, особенно групповой бит (см. выше).
ответ дан Gilles 20.10.2011 в 20:00
источник
9

Я столкнулся с одним и тем же и, наконец, понял, что это потому, что я зашифровал свой домашний каталог. SSH не может прочитать файл authorized_keys до входа в систему, поэтому в основном это заставляет вас сначала аутентифицировать пароль. См. Раздел о зашифрованном домашнем каталоге по следующей ссылке:

Ссылка

    
ответ дан Willie Wheeler 11.07.2012 в 08:48
5

Я бы удостоверился, что у вас есть свои настройки в / etc / ssh / sshd_config.

Чтобы принудительно использовать PKI и отключить пароли, найдите строку

#PasswordAuthentication yes 

в вашем файле, раскомментируйте его и установите для него

PasswordAuthenticate no

Я также прочитал бы баланс настроек, чтобы они имели смысл. В частности, постарайтесь убедиться, что вы используете ключи RSA, поскольку DSA известно, что они подвержены риску.

    
ответ дан cmdematos 19.10.2011 в 22:00
3

Если вы проверяете права доступа к каталогам и есть "." сразу после них, то вы можете включить selinux, что будет беспорядочно с обменом ключами, а по умолчанию - ручным идентификатором пароля.

Вы можете отключить SELinux для устранения неполадок, выполнив следующие инструкции: Ссылка или просто отредактируйте файл / etc / selinux / config и измените его с« принудительного »на« отключено ».

Надеюсь, что это поможет.

    
ответ дан tweekd 30.07.2012 в 00:28
2

Я исправил эту проблему, не комментируя «PasswordAuthentication yes» в / etc / ssh / sshd_config.     

ответ дан Ben Ernest 10.12.2013 в 07:08
1

Из-за необходимости устранения неполадок связи между двумя разными машинами у меня было два закрытых ключа в ~/.ssh на стороне клиента.

Вместо того, чтобы настроить каждый серверный хост соответствующим личным ключом в ~/.ssh/identity , как я должен был сделать, у меня был вторичный (и в этом случае неправильный) ключ, настроенный для всех хостов:

Host *
IdentityFile ~/.ssh/identity_b

Исправление ~/.ssh/identity разрешило проблему:

Host a
IdentityFile ~/.ssh/identity_a
Host b
IdentityFile ~/.ssh/identity_b
    
ответ дан Uli Klumpp 24.04.2014 в 03:33
1

Одна из возможных причин проблемы заключается в том, что у вас есть ключи DSA, но теперь SSH (по-видимому) по умолчанию требует использования ключей RSA. У меня возникла проблема при обновлении до 16.04. Здесь вы можете увидеть , но короткий ответ добавляет следующее: ~/.ssh/config :

PubkeyAcceptedKeyTypes ssh-dss
    
ответ дан DeegC 25.05.2016 в 18:34
0

У меня была такая же проблема, но изменение разрешений с chmod не помогло, так как оказалось, что у меня не было права собственности на файл ~/.ssh/authorized_keys . Вы можете изменить право собственности на каталог .ssh с помощью:

sudo chown -R "$USER" ~/.ssh
    
ответ дан Nick 23.09.2017 в 08:30
-1

Как-то это сработало для меня:

root @ kaiser: ~ # vim / etc / ssh / sshd_config

Измените эту строку от «да» до «нет»  28 StrictModes no

Повторите попытку

сисадмин @ suselinux1: ~ > con sysadmin kaiser Добро пожаловать в Ubuntu 12.04.1 LTS (GNU / Linux 3.2.0-25-generic i686)

Последний вход: Пт ноя 9 15:40:11 2012 от 10.1.3.25 sysadmin @ kaiser: ~ $ date vie nov 9 17:53:11 CST 2012 sysadmin @ kaiser: ~ $

    
ответ дан theunbekanntshadow 10.11.2012 в 01:06