SSH больше не позволяет аутентификацию с открытым ключом

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

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

22
задан 06.12.2019, 05:26

9 ответов

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

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

Host *
IdentityFile ~/.ssh/identity_b

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

Host a
IdentityFile ~/.ssh/identity_a
Host b
IdentityFile ~/.ssh/identity_b
0
ответ дан 06.12.2019, 05:26

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

0
ответ дан 06.12.2019, 05:27

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

https://help.ubuntu.com/community/SSH/OpenSSH/Keys#Encrypted_Home_Directory

0
ответ дан 06.12.2019, 05:28

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

Вы можете отключить SELinux для устранения неполадок, следуя инструкциям здесь: http://www.centos.org/docs/5/html/5.1/Deployment_Guide/sec-sel-enable-disable-enforcement .html , или просто отредактируйте файл / etc / selinux / config и измените его с «принудительного» на «отключенный».

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

0
ответ дан 06.12.2019, 05:28
  • 1
    У меня был включенный selinux, но отключение его didn' t, кажется, фиксируют его. То, что добилось цели для меня, было chmod 600 ~/.ssh/authorized_keys - файл был группой-writeable. (через pyrosoft.co.uk/blog/2013/01/12/… ) – Return-1 06.12.2019, 05:29

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

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

#PasswordAuthentication yes 

в вашем файле, раскомментируйте ее и установите значение

PasswordAuthenticate no

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

0
ответ дан 06.12.2019, 05:29
  • 1
    You' ре, объясняющее, как отключить аутентификацию по паролю. Этот won' t помогают обнародовать ключевую работу аутентификации (открытый ключ пробуют сначала). Andrew: не отключайте аутентификацию по паролю до you' ре верные работы аутентификации с открытым ключом! – Denis Kniazhev 06.12.2019, 05:29

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

sudo chown -R "$USER" ~/.ssh
0
ответ дан 06.12.2019, 05:29

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

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

  • Запустите ssh -vvv, чтобы увидеть много результатов отладки. Если вы публикуете вопрос с вопросом, почему вы не можете соединиться с ssh, включите этот вывод (вы можете захотеть анонимизировать имена хостов и пользователей).
  • Если можете, проверьте журналы сервера в /var/log/auth.log.
  • Если аутентификация с открытым ключом не работает, проверьте разрешения еще раз, особенно групповой бит (см. Выше).
0
ответ дан 06.12.2019, 05:30
  • 1
    Я изменил полномочия своей домашней папки и что? Я был заблокирован из SSH! Я изменил ssh ключи, нет, сервер все еще отказывается от соединения! Я был сумасшедшей попыткой найти решение и с Вашим ответом , chmod 700 к моей домашней папке, ssh начал работать!!!!!!! Спасибо!, Если бы мое клеммное соединение, отброшенное при попытке найти решение, я был бы полностью заблокирован из сервера. Поэтому остерегайтесь для не игры с домашними полномочиями папки! (Я просто изменил свои домашние полномочия папки, не .ssh папка, но все еще заблокировал из SSH), – rptwsthi 06.12.2019, 05:30
  • 2
    Если you' ре, выполняющее последнюю версию ssh (или sshd), ключи DSA больше не поддерживаются по умолчанию из-за проблем безопасности. Единственная реальная фиксация должна обновить до RSA или лучших ключей. – Madhavi Jayasinghe 06.12.2019, 05:31
  • 3
    Хороший ответ! Я забыл свой homedir: o – Joe 06.12.2019, 05:31
  • 4
    @RexLogan That' s, что говорит мое первое предложение... – spechter 06.12.2019, 05:31
  • 5
    (от U& L отмечают wiki, скопированный в AU), – Sabbir 06.12.2019, 05:32

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

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

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

Попробуйте еще раз

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

  • Документация: [110 ] https://help.ubuntu.com/

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

0
ответ дан 06.12.2019, 05:30

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

PubkeyAcceptedKeyTypes ssh-dss
0
ответ дан 06.12.2019, 05:31

Теги

Похожие вопросы