Аутентификацию по протоколу SSH на сервере, как известно, возможна по паролю и по ssh ключу, авторизацию по ключу можно запретить. SSH авторизация по паролю менее безопасна, чем по ключу поскольку в этом случае нельзя гарантировать, что пароль не станет известен злоумышленникам если сетевой трафик прослушивается, а пароль передается в открытом виде.
Ключ генерируется на локальном компьютере, затем добавляется в .ssh/authorized_keys в домашнем каталоге пользователя. После этого запрос пароля происходить не будет.
Для пользователя root полный путь к файлу /root/.ssh/authorized_keys
В этот файл при необходимости вручную можно добавлять ssh ключи, удалять ssh ключи. Можно удалить весь файл, тогда по ключу подключаться не сможет никто.
Пример файла с одним добавленным ключом приведен на скриншоте:
Принудительная SSH авторизация по паролю
Политики безопасности бывают разные и иногда ограничивают доступ по ключу. Если доступ к серверу по ключу закрыт в настройках службы ssh авторизоваться таким образом не удастся и попытки авторизации будут выдавать ошибки. Также файл с ключами ssh может быть случайно удален или на него могут быть выставлены неверные права доступа.
В таких случаях нужна SSH авторизация по паролю.
Когда возникает необходимость заходить не по ключу, можно сделать так:
ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no [email protected]
Где user — логин системного пользователя на сервере, example.com — доменное имя (вместо него может использоваться IP адрес сервера, например 123.123.123.123)
Также полезным оказывается добавление алиаса «ssh-nokey» для подключения по паролю в .bashrc
echo "alias ssh-nokey='ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no' " >> ~/.bashrc
В этом случае пароль будет запрашиваться каждый раз независимо от наличия публичного ключа.
Обязательный запрос пароля при выполнении rsync
Использование публичного ключа можно исключить при использовании rsync:
rsync -avz -e "ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no" user@ip-adress:/dir/ /dir/current/
Также читайте про то, как сгенерировать SSH ключ и настроить доступ к серверу по SSH