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 открытый ключ хоста, чтобы:

  1. SSH автоматически проверяет подлинность хоста
  2. Ключ хоста не сохраняется в файле 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.

Другие вопросы по тегам