Назад | Перейти на главную страницу

Принудительный пароль для входа в 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.

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

Это потому, что ваша личность (открытый ключ) добавлена ​​в качестве авторизованного ключа на 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 ключ.