SSH-ключ и IP-адрес
Сотрудник постоянно упоминает, что ключи SSH связаны с IP-адресом, но я не уверен, что именно это означает. Поэтому я попытался сгенерировать ключ SSH, и в конце файла было указано имя хоста. Это обсуждение может закончиться, когда мы говорили о совместном использовании ключа хоста для нескольких хостов, и здесь у ключа хоста не было DNS-адреса или IP-адреса хоста. Могут ли некоторые объяснить, как адрес DNS / IP в файле ключа хоста связан с самим ключом и что означает его отсутствие? Благодарю.
2 ответа
IP-адрес или имя хоста в конце ключа - это просто комментарий. По умолчанию ваше имя пользователя и имя хоста, где был сгенерирован ключ, записано там, но оно игнорируется для целей аутентификации.
Если вы хотите заблокировать авторизованный ключ ssh, чтобы его можно было использовать только с определенных хостов, вы можете поместить его в свой authorized_keys
файл:
from="192.168.0.0/24" ssh-rsa BLAHBLAHYOURKEYGOESHERE someone@somewhere
^^^^^^^^^^^^^^^^^ -- comment
Не ясно, какой из множества связанных с ssh файлов вы имеете в виду, но один, который собирает и хранит адреса, это known_hosts
(~/.ssh/known_hosts и, если настроен /etc/ssh/known_hosts) файл./ Здесь хранятся ключи для хостов, к которым вы подключились, и используется, чтобы попытаться предотвратить атаки человека в середине.
Когда вы устанавливаете соединение через ssh с удаленным хостом, он отправляет вам свой открытый ключ. Ваш ssh-клиент проверит known_hosts:
Если вы ранее подключились, он сравнит только что отправленный ключ с ранее сохраненным.
- Если они одинаковы, то все хорошо, связь продолжается
- Если они различаются, клиент прекращает соединение и выдает сообщение об ошибке.
Если вы ранее не подключались, ваш клиент отобразит отпечаток удаленного хоста и попросит вас подтвердить его подлинность.
- Если вы аутентифицируете ключ, он сохраняется в known_hosts для дальнейшего использования (см. Выше)
- Если вы не аутентифицируете ключ, соединение прекращается.