9

Мне нужно подключиться к хосту с динамическим 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 ответа2

6

Лучшее решение (т. Е. Самое близкое к тому, что я хочу), которое я мог бы найти, - это использовать опцию HostKeyAlias: он будет использовать имя хоста, которое я указываю для доступа к known_hosts (а не IP, к которому я подключаюсь).

Мне нужно будет добавить открытый ключ хоста к known_hosts используя заданное имя хоста (например, myhost), а затем подключиться к нему, используя:

ssh -o 'HostKeyAlias myhost' ...
4

Файл known_hosts - это не просто ключ, он также содержит имя хоста, которое вы используете для подключения, и, если возможно, соответствующий IP-адрес. Вот почему вы видите ошибку, она сравнивает триплет, полученный от сервера, с тем, что вы сохранили в файле known_hosts.

Таким образом, если IP-адрес продолжает меняться, вы можете отключить CheckHostIP а это значит, что он просто проверит имя хоста и ключ хоста. Если они остаются неизменными, у вас должно быть меньше жалоб, но вы будете подвергаться риску, если кто-то похитит ваш DNS.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .