Где генерируется/хранится отпечаток SSH-сервера?

Где генерируется/хранится отпечаток SSH-сервера?

Я установил openssh-server и создал ключ с помощью ssh-keygen. Затем я попытался протестировать его с помощью локальной переадресации портов, выполнив ssh -L 8080:www.nytimes.com:80 127.0.0.1. Однако отпечаток ключа, который предоставляет эта команда, не является отпечатком ключа, который я получаю, когда я делаю ssh-keygen -l. Даже если я удаляю свой каталог .ssh, я все равно получаю тот же отпечаток, который не является тем, который я создал с помощью ssh-keygen. Есть ли в моей системе другой ключ? Где этот ключ? Как мне выбрать этот ключ для использования openssh-server?

решение1

При создании сеанса SSH задействованы две разные пары ключей (с отпечатком для каждой пары). Одна из них — ключ пользователя, который хранится в ~/.ssh. Идентификатор ключа SSH пользователя иногда используется в качестве учетных данных для входа на другой компьютер (если вы настроили вход на основе ключа).

Другой — ключ сервера SSH. Это ключ, отпечаток которого вы видите, когда подключаетесь к другому серверу в первый раз. Идентификатор этого ключа используется для того, чтобы убедиться, что вы входите на тот сервер SSH, на который намереваетесь. Это важно, если вы используете пароли, потому что вы не хотите случайно попытаться войти на машину злоумышленников: злоумышленник получит ваш пароль, когда вы его введете. Затем злоумышленник сможет войти на машину, на которую, как вы думали, вы входите! (это известно как«атака человека посередине»)Ключи, которые SSH-сервер использует для своей идентификации при входе в систему, находятся в файле /etc/ssh/и обычно называются примерно так ssh_host_rsa_key: .

Фактически вы можете изменить место, где SSH-сервер будет искать ключ в файле с помощью настройки./etc/ssh/sshd_configHostKey /path/to/host/key

По умолчанию ssh-keygenбудет создан ключ для текущего пользователя, который по умолчанию будет сохранен в ~/.ssh. Формат ключа пользователя и ключа сервера одинаков; разница в том, где они размещены и есть ли /etc/ssh/sshd_configдиректива HostKey, указывающая на них.При установке пакета openssh-server он автоматически генерирует ключи для использования сервером. Вот откуда взялись ключи с неизвестным отпечатком.Если вы хотите увидеть отпечаток ключа SSH-сервера (RSA*), вы можете запустить ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub.

*Существуют различные алгоритмы шифрования. Каждый из них использует свой ключ. Распространенные — DSA (слабый), RSA (старый по умолчанию) и ECDSA (новый по умолчанию).

решение2

Ключи хоста SSH хранятся в /etc/ssh/, который вам обычно не нужно выбирать. Эти ключи были сгенерированы при установке пакета openssh-server.

Вы можете составить список отпечатков ключей, ssh-keygen -l -f /etc/ssh/ssh_host_key.pubхотя вам придется повторить это для каждого открытого ключа.

 

решение3

ssh-keygenне генерирует отпечаток SSH на вашем сервере. Он генерируется сервером SSH. ssh-keygenсоздает пару открытого/закрытого ключа для вашей системы, которую вы можете использовать позже для доступа к вашему серверу SSH без необходимости передавать серверу простой текстовый пароль.

Отпечаток вашего сервера, очевидно, не будет отображаться как отпечаток сгенерированной вами пары открытого и закрытого ключей, поскольку они отделены друг от друга.

Связанный контент