SSH: известный хост с динамическим адресом
Мне нужно подключиться к хосту с динамическим IP-адресом.
Каждый раз, когда меняется его IP-адрес, SSH запрашивает у меня проверку отпечатков пальцев:
The authenticity of host '...' can't be established.
RSA key fingerprint is ....
Are you sure you want to continue connecting (yes/no)?
Можно ли передать SSH открытый ключ хоста, чтобы:
- SSH автоматически проверяет подлинность хоста
- Ключ хоста не сохраняется в файле known_hosts
Этот вопрос отличается от того, как я могу избежать проверки хоста SSH для известных хостов? так как эти другие вопросы направлены на подавление проверки SSH, а я не хочу ее подавлять: я хочу, чтобы хост аутентифицировался, просто используя открытый ключ хоста (который я знаю и храню в файле), а не SSH known_hosts
файл.
Мне кажется, другой вопрос заключается в том, чтобы каждый раз подключаться к другому серверу, а не к одному общеизвестному серверу с динамическим IP.
2 ответа
Лучшее решение (т. Е. Самое близкое к тому, что я хочу), которое я могу найти, это использовать опцию HostKeyAlias
: он будет использовать имя хоста, указанное для доступа known_hosts
(а не IP, к которому я подключаюсь).
Мне нужно будет добавить открытый ключ хоста known_hosts
используя заданное имя хоста (например: myhost
), а затем подключиться к нему с помощью:
ssh -o 'HostKeyAlias myhost' ...
known_hosts
Файл - это не просто ключ, он также содержит имя хоста, которое вы используете для подключения, и, если возможно, соответствующий IP-адрес. Вот почему вы видите ошибку, она сравнивает триплет, полученный с сервера, с тем, что вы сохранили в файле known_hosts.
Таким образом, если IP-адрес продолжает меняться, вы можете отключить CheckHostIP
и это означает, что он просто проверит имя хоста и ключ хоста. Если они остаются неизменными, у вас должно быть меньше жалоб, но вы будете подвергаться риску, если кто-то похитит ваш DNS.