Как найти отпечаток моего ключа RSA?

Мне нужно сделать аудит ключа SSH для GitHub, но я не уверен, как найти отпечаток моего ключа RSA. Первоначально я следовал руководству, чтобы сделать настройку на Ubuntu 10.04 (Lucid Lynx) box размещен на Linode гарантийное.

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

12 ответов


выполните следующую команду, чтобы получить отпечаток ключа SSH (-l означает "список" вместо создания нового ключа,-f означает "имя файла"):

$ ssh-keygen -lf /path/to/ssh/key

так, например, на моей машине команда, которую я запустил, была (используя открытый ключ RSA):

$ ssh-keygen -lf ~/.ssh/id_rsa.pub
2048 00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff /Users/username/.ssh/id_rsa.pub (RSA)

С более новыми версиями ssh-keygen запустите ssh-keygen -E md5 -lf <fileName> если вы хотите тот же формат, что и старый (спасибо, Ллойд Деволф).

дополнительные сведения:

ssh-keygen -lf работает на known_hosts и authorized_keys файлы.

найти наиболее общедоступные в системе Linux / Unix / OS X с find /etc/ssh /home/*/.ssh /Users/*/.ssh -name '*.pub' -o -name 'authorized_keys' -o -name 'known_hosts' (если вы хотите увидеть внутри homedirs других пользователей, вы должны быть root или sudo.)

на ssh-add -l очень похоже, но перечисляет отпечатки пальцев ключей, добавленных к вашему агенту. (Пользователи OS X отмечают, что magic passwordless SSH через Keychain-это не то же самое, что использование ssh-agent.)


новые команды SSH будут отображать отпечатки пальцев как SHA256 и ключ.

например:

ssh-keygen -lf ~/.ssh/id_dsa.pub 
1024 SHA256:19n6fkdz0qqmowiBy6XEaA87EuG/jgWUr44ZSBhJl6Y (DSA)

Если вам нужно сравнить его со старым отпечатком пальца, вам также нужно указать, чтобы использовать MD5 в функция хеширования отпечатков пальцев.

ssh-keygen -E md5 -lf ~/.ssh/id_dsa.pub
2048 MD5:4d:5b:97:19:8c:fe:06:f0:29:e7:f5:96:77:cb:3c:71 (DSA)

также в наличии: -E sha1

обновление... ДА... Ключи DSA для SSH больше не должны использоваться, старый ключ RSA или Новые ключи ecliptic должны быть используется вместо этого.

для тех "администраторов", которые продолжают редактировать команду, которую я использовал выше. ПРЕКРАТИ ЕГО МЕНЯТЬ!


чтобы увидеть свой ключ на Ubuntu, просто введите следующую команду на своем терминале:

ssh-add -l

вы получите такой вывод: 2568 0j:20:4b:88:a7:9t:wd:19:f0:d4:4y:9g:27:cf:97:23 yourName@ubuntu (RSA)

если вы получаете ошибку; Could not open a connection to your authentication agent.
Тогда это означает, что ssh-agent не работает. Вы можете запустить / запустить его с помощью: ssh-agent bash (спасибо @Richard в комментариях), а затем повторно запустите ssh-add -l


пара ключей (закрытый и открытый ключи) будет иметь тот же отпечаток пальца; поэтому в случае, если вы не можете вспомнить, какой закрытый ключ принадлежит к какому открытому ключу, найдите совпадение, сравнив их отпечатки пальцев.

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

  1. загрузите агент SSH, если вы этого не сделали. Самый простой способ-вызвать

    $ ssh-agent bash
    

    или

    $ ssh-agent tcsh
    

    (или другая оболочка, которую вы используете).

  2. загрузить закрытый ключ, который вы хотите проверить:

    $ ssh-add /path/to/your-ssh-private-key
    

    вам будет предложено ввести пароль, если ключ защищен паролем.

  3. теперь, как говорили другие, введите

    $ ssh-add -l
    1024 fd:bc:8a:81:58:8f:2c:78:86:a2:cf:02:40:7d:9d:3c you@yourhost (DSA)
    

    fd:bc:... - это отпечаток после. Если есть несколько ключей, будет напечатано несколько строк, и последняя строка содержит отпечаток последнего загруженного ключа.

  4. если вы хотите остановить агент (т. е., если вы вызвали Шаг 1 выше), просто введите "выход" в оболочке, и вы вернетесь в оболочку до загрузки агента ssh.

Я не добавляю новую информацию, но, надеюсь, этот ответ понятен пользователям всех уровней.


самый быстрый способ, если ваши ключи находятся в SSH-агенте:

$ ssh-add -L | ssh-keygen -E md5 -lf /dev/stdin

каждый ключ в Агенте будет напечатан как:

4096 MD5:8f:c9:dc:40:ec:9e:dc:65:74:f7:20:c1:29:d1:e8:5a /Users/cmcginty/.ssh/id_rsa (RSA)

воспроизведение контента из AWS форумы здесь, потому что я нашел его полезным для моего варианта использования - я хотел проверить, какой из моих ключей соответствует тем, которые я импортировал в AWS

openssl pkey -in ~/.ssh/ec2/primary.pem -pubout -outform DER | openssl md5 -c

где: - primary.pem является закрытым ключом для проверки


$ ssh-add -l 

также будет работать на Mac OS X v10.8 (Горный Лев) - В10.10 (Йосемити).

Он также поддерживает опцию -E чтобы указать формат отпечатков пальцев, поэтому в случае необходимости MD5 (он часто используется, например, GitHub), просто добавьте -E md5 команды.


Это функция оболочки, которую я использую, чтобы получить отпечаток пальца SSH для создания DigitalOcean ИКТ капли:

fingerprint() {
    pubkeypath=""
    ssh-keygen -E md5 -lf "$pubkeypath" | awk '{ print  }' | cut -c 5-
}

положите его в ~/.bashrc, источник его, а затем вы можете получить отпечаток пальца, как так:

$ fingerprint ~/.ssh/id_rsa.pub
d2:47:0a:87:30:a0:c0:df:6b:42:19:55:b4:f3:09:b9

в Windows, Если вы работаете шпаклевка / Pageant, отпечаток пальца указан при загрузке шпатлевки (.ppk) ключ к конкурсу. Это довольно полезно, если вы забыли, какой из них вы используете.

Enter image description here


если ваш SSH агент работает, это

ssh-add -l

чтобы перечислить отпечатки пальцев RSA всех идентичностей, или -L для перечисления открытых ключей.

если ваш агент не работает, попробуйте:

ssh-agent sh -c 'ssh-add; ssh-add -l'

и для открытых ключей:

ssh-agent sh -c 'ssh-add; ssh-add -L'

если вы получаете сообщение: 'у агента нет удостоверений личности.', тогда вы должны создать свой ключ RSA по ssh-keygen первый.


чтобы проверить удаленный сервер SSH до первого подключения, вы можете посмотреть наwww.server-stats.net/ssh/ чтобы увидеть все ключи SHH для сервера, а также от того, когда ключ известен.

Это не похоже на SSL-сертификат, но определенно необходимо сделать перед первым подключением к любому SSH-серверу.


Google Compute Engine показывает отпечаток ключа хоста SSH в последовательном выходе экземпляра Linux. API может получить эти данные из GCE,и нет необходимости входить в экземпляр.

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

однако, похоже, что это зависит от типа экземпляра. Я использую экземпляры Debian 7 (Wheezy) f1-micro.