Принудительный пароль для входа по ssh

У меня есть два сервера с CentOS6 и CentOS7.

Оба имеют доступ по SSH. На моем клиентском компьютере установлена ​​Ubuntu 16.04.

Для CentOS6 я могу войти в систему с помощью команды

ssh -i ~/.ssh/serv1 root@serv1

, но команда

ssh root@serv1

запрашивает пароль. Для меня это нормально.

Для CentOS7 я могу войти в систему с помощью команды

ssh -i ~/.ssh/serv2 root@serv2

, но команда

ssh root@serv2

НЕ запрашивает пароль. Я тоже могу войти в систему.

Когда я использую ssh root @ serv2'с другого компьютера ssh запрашивает пароли, это нормально.

Вопрос в том, почему я могу войти в serv2 без пароля и без ключа ssh с помощью команды

ssh -i ~/.ssh/serv2 root@serv2

?

Я не могу найти параметр, отвечающий за это стандартное поведение CentOS7, которое невозможно найти.

Сообщите мне, нужна ли дополнительная информация.

2
задан 12 July 2017 в 11:47
1 ответ

Это потому, что ваша личность (открытый ключ) добавлена ​​как авторизованный ключ на serv2 в / root /. ssh / authorized_keys . См. man sshd раздел AUTHORIZED_KEYS FILE FORMAT для получения дополнительной информации об этом файле.

Ваша идентификационная информация по умолчанию хранится в ~ / .ssh / id_dsa, ~ / .ssh / Файлы id_ecdsa, ~ / .ssh / id_rsa, id_ed25519 и аналогичные файлы с расширением .pub, в которых хранятся соответствующие открытые ключи. Когда вы пытаетесь войти в любой удаленный ssh ​​без указания опции -i, они предлагаются удаленному серверу. Если на удаленном сервере есть какие-либо из них, хранящиеся под их ~ / .ssh / authorized_keys , вы можете войти в систему с этим ключом (т.е. без пароля). Поскольку на основе пароля и на основе открытого ключа - это два разных метода авторизации удаленного пользователя.

Когда вы указываете параметр '-i', вы просто представляете другой открытый ключ, хранящийся в этом файле.

Также вы можете всегда запускайте ssh с параметром '-v', чтобы получить более подробную информацию о том, какой метод ключа / открытый ключ был принят удаленным устройством. Как в этом примере:

debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/nstorm/.ssh/id_rsa
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Offering ECDSA public key: /home/nstorm/.ssh/id_ecdsa
debug1: Server accepts key: pkalg ecdsa-sha2-nistp256 blen 104
debug1: Authentication succeeded (publickey).
Authenticated to 172.16.2.1 ([172.16.2.1]:22).

Если вы не хотите входить в систему на serv2 без пароля, если вы не указали нестандартную идентификацию с параметром '-i', вам необходимо удалить свою идентификацию по умолчанию, хранящуюся в serv2 в /root/.ssh/authorized_keys . Это должна быть та же строка, что и ваш локальный ключ ~ / .ssh / id _ *. Pub .

1
ответ дан 3 December 2019 в 12:35

Теги

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