На моем Mac в ~/.ssh/known_hosts
файле есть 1 запись на сервер , в Ubuntu я заметил, что для каждого сервера создано две записи. Это почему?
Формат:
|1|wwwwwwwwwwwwwww=|wwwwwwwwww= ecdsa-sha2-nistp256 AAAAAAAAAA+AAAAA=
|1|vvvvvvvvvvvvvvv=|vvvvvvvvvv= ecdsa-sha2-nistp256 AAAAAAAAAA+AAAAA=
В обеих записях первый раздел перед ecdsa-sha2-nistp256 отличается. После ecdsa-sha2-nistp256 это то же самое (ключ паба, который я представляю).
Я ssh на сервер A, и оттуда я ssh на сервер B. Я не добавляю записи вручную, я вижу предупреждение Ubuntu и позволяю его добавить в файл known_hosts.
Я закрыл файл known_hosts для этого теста.
У меня есть обоснованное сомнение, что дополнительная запись предназначена для адреса ipv6, хотя я и не использовал его для подключения. Добавляет ли Ubuntu это автоматически, если доступно?
Ответы:
У вас есть две записи, потому что одна по домену, а другая по IP-адресу, поэтому ваш пример:
может в действительности прочитать:
Если вы отключите известное хеширование хоста (добавьте его
HashKnownHosts no
в файл ~ / .ssh / config), то вы сможете увидеть, что происходит, но в нехэшированном файле known_host как домен, так и IP-адрес могут отображаться в одной строке, поэтому они выглядит так:Здесь немного больше обсуждается формат файла known_hosts.
источник
У вас должен быть один ключ для каждого сервера, к которому вы подключены. Либо вы подключались к двум серверам в разное время, либо ключ на вашем отдельном сервере был изменен.
Когда вы впервые подключаетесь к ssh-серверу, вас спрашивают, хотите ли вы добавить ключ к известным хостам.
Выглядит примерно так:
Таким образом, вы приняли ключи с вашим клиентом в какой-то момент времени.
При каждом последующем подключении при подключении к серверу сравниваются ключи и выдается предупреждение об их изменении.
Смотрите: http://bodhizazen.com/Tutorials/SSH_overview#Security
источник