Где создается / хранится отпечаток пальца сервера SSH?

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

50
задан 7 November 2011 в 05:49

3 ответа

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

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

Фактически вы можете изменить, где SSH-сервер ищет ключ, в / etc / ssh / ssh d _config с настройкой HostKey / 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 (новое значение по умолчанию).

64
ответ дан 7 November 2011 в 05:49

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

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

7
ответ дан 7 November 2011 в 05:49

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

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

17
ответ дан 7 November 2011 в 05:49

Другие вопросы по тегам:

Похожие вопросы: