Недавно, через некоторое время, я попытался войти на свой сервер SSH в локальной сети, и я получил это предупреждение:
$ ssh user@local.server.hostname
Warning: Permanently added the RSA host key for IP address '192.168.1.4' to the list of known hosts.
Я посмотрел следующий пост на SO: https://stackoverflow.com/questions/9299651/warning-permanently-added-to-the-list-of-known-hosts-message-from-git Но я не Не думаю, что это связано с тем, что клиент ssh не проверяет файл known_hosts
(я полагаю, в моем случае это проверяется, и я не работаю с Windows).
Вот файл known_hosts
, и я обнаружил, что у меня есть две строки одного и того же открытого ключа, но с разными именами хостов /IP:
$ cat ~/.ssh/known_hosts
local.server.hostname,192.168.1.3 ssh-rsa ...Here it goes the public key...
192.168.1.4 ssh-rsa ...Here it goes the same public key (as for the local.server.hostname,192.168.1.3 entry above)...
Я уверен, что два открытых ключа равны (я проверил отпечаток обоих с помощью команды echo "here I pasted the public key" | base64 -D | md5
, который я запускал для каждой записи known_hosts). В противном случае я бы увидел «ПРЕДУПРЕЖДЕНИЕ: УДАЛЕННАЯ ИДЕНТИФИКАЦИЯ ХОЗЯЙКА ИЗМЕНИЛАСЬ».
Теперь у меня есть локальная сеть с DHCP, поэтому серверу присваивается IP, а иногда ему может быть назначен другой.
Я предполагаю, что это основная причина, по которой у меня появилось это предупреждение: IP-адрес сервера изменился (с 192.168.1.3, первая строка known_hosts, на 192.168.1.4), но так как открытый ключ остался прежним, и открытый ключ уже был доверен моим Клиент ssh, так как уже была запись для local.server.hostname,192.168.1.3
в known_hosts
, клиент ssh показал мне предупреждение, но добавил запись для 192.168.1.4
без запроса подтверждения.
Это верно? Единственное, что приходит на ум: почему тогда клиент добавил еще одну запись вместо того, чтобы просто изменить уже существующую, например, следующим образом:
local.server.hostname,192.168.1.3,192.168.1.4 ssh-rsa ...public key...
Почему две записи для одного и того же открытого ключа?