$ ls -1 ~/.ssh/ authorized_keys config id_rsa id_rsa.pub known_hosts
Когда идентификация хоста изменилась, ssh-клиент предупреждает об этом и отключает аутентификацию по паролю, чтобы избежать атак типа «MITM» или подмены сервера.
Аргумент, используемый для управления этим параметром, является StrictHostKeyChecking.
У него есть три возможных значения:
- yes: если установлено значение «yes», ssh никогда не будет автоматически добавлять ключи хоста в файл ~ /.ssh /known_hosts и будет отказываться подключаться к хосту, чей ключ хоста был изменен.
- no: если установлено значение «no», ssh автоматически добавит новые ключи хоста в файлы известных хостов пользователя.
- ask: если установлено значение «ask» (по умолчанию), новые ключи хоста будут добавляться в известные хост-файлы пользователя только после того, как пользователь подтвердит действие, и ssh откажется подключаться к хостам, чей ключ хоста был изменен.
Чтобы отключить проверку ключа хоста SSH в Linux, необходимо установить значение no, а UserKnownHostsFile – перенаправить на /dev/null.
Сгенерируйте ключи SSH, если у вас их еще нет.
Установка пароля не обязательна.
$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/debian/.ssh/id_rsa): Enter passphrase (empty for no passphrase): <optional> Enter same passphrase again: <optional> Your identification has been saved in /home/debian/.ssh/id_rsa. Your public key has been saved in /home/debian/.ssh/id_rsa.pub. The key fingerprint is: SHA256:/2A71cIaTTuuDJ6C2gatFk5/6WAq3JyLCfppkAfdQzM debian@deb10 The key's randomart image is: +---[RSA 2048]----+ | | | E | | . o o | |. . o . | | o . . S + o | |o = . .. B . | |o=o=+. .. += o | |+.BO+.+. =o+. | |.B=+oo..o +o. | +----[SHA256]-----+
Сгенерируйте ключи SSH, если у вас их еще нет.
Установка пароля не обязательна.
$ ls -1 ~/.ssh
authorized_keys
id_rsa
id_rsa.pub
Убедитесь, что файлы имеют правильные разрешения.
for file in authorized_keys id_rsa; do
chmod 0400 ~/.ssh/${file}
done
Создайте локальный файл конфигурации ssh.
touch ~/.ssh/config
Добавьте следующие настройки в созданный файл конфигурации.
cat << EOF > ~/.ssh/config
Host *
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
EOF
Установите правильного владельца для файла.
chmod 0400 ~/.ssh/config
Вы должны иметь возможность войти без проверки ключа хоста SSH.
$ ssh debian@10.1.1.11 Warning: Permanently added '10.1.1.11' (ECDSA) to the list of known hosts. Enter passphrase for key '/home/centos/.ssh/id_rsa': Linux deb10 4.19.0-5-cloud-amd64 #1 SMP Debian 4.19.37-5+deb10u2 (2019-08-08) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Tue Sep 17 17:35:34 2019 from 10.1.1.10 debian@deb10:~$
Добавлю сюда свои пять копеек:
– также можно отключить проверку ключей хоста на строне клиента SSH,
указав, упомянутую здесь, опцию: StrictHostKeyChecking=no, например:
scp -o StrictHostKeyChecking=no …
ssh -o StrictHostKeyChecking=no …
=
Спасибо