У нас есть 2 рабочих сервера на VIP, только один используется одновременно, например:
myservice.mycompany.uk обычно указывает на server1, в случае сбоя server1 он указывает на server2.
Есть некоторые другие серверы, которым необходимо отправлять файлы на myservice.mycompany.uk через SFTP, и это должно быть полностью прозрачным для них, если мы перейдем на server2.
Проблема в том, что, хотя ключи установлены как на server1, так и на server2, на других серверах будут проблемы с проверкой ключа хоста, потому что ключ хоста server2 отличается от ключа хоста server1. Это вызывает ошибку безопасности (поскольку включена строгая проверка), и для ее работы необходимо удалить строку из known_hosts.
Наш ИТ-специалист предложил создать 2 записи в known_hosts, одну с ключом для server1 и одну с server2, обе с хостом myservice.mycompany.uk.
Это сработает? Как это можно сделать с помощью putty / psftp в Windows? Поскольку ключ хоста хранится в реестре, дублирование имен не допускается. Есть ли лучший способ, например, заставить серверы иметь один и тот же ключ хоста?
Чтобы упростить работу для клиентов, я бы просто использовал один и тот же ключ хоста на обеих машинах. Просто скопируйте один из ключей (тот, который используется в данный момент на сервере) на вторую машину. Они ключи находятся в /etc/ssh/ssh_host_*
.
Другой вариант - отключить проверку ключей хоста на клиентах. Это можно сделать, настроив их ssh_config
использовать:
Host myservice.mycompany.uk
StrictHostKeyChecking
Я заархивировал это таким образом, пользователь root запускает один сценарий в 23:00, который подключается к логическому IP-адресу кластера Linux, поэтому в случае переключения IP-адреса мой отпечаток ssh изменится
echo "StrictHostKeyChecking no" >> /root/.ssh/config
echo "UserKnownHostsFile /dev/null" >> /root/.ssh/config
Таким образом, настройка только для root