У меня есть два сервера с 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
.