Документ взят из кэша поисковой машины. Адрес оригинального документа : http://wiki.cs.msu.ru/Main/SSHKeyGenUseOpenSSH?rev=2
Дата изменения: Unknown
Дата индексирования: Sun Apr 10 09:50:13 2016
Кодировка: koi8-r
(r2) SSHKeyGenUseOpenSSH < Main < Foswiki
You are here: Foswiki>Main Web>SShKeys>SSHKeyGenUseOpenSSH (revision 2)EditAttach

Создание и использование закрытого и открытого ключа в программе ssh

Введение

Для общего понимания ключей рекомендуется прочитать страницу посвященную ssh-ключам Все приведенные на этой странице команды будут выполняться в терминале (xterm, terminal, konsole,...), а т.к. ssh-доступ почти всегда подразумевает работу в командной строке, будем считать, что как выполнять команды Вы знаете. В примерах ниже мы будем для определенности использовать RSA-ключи, хотя Вы можете использовать и другие виды ключей:
  • DSA-ключи: файлы id_dsa*, длина в битах всегда 1024, как требуется по FIPS 186-2
  • ECDSA-ключи: в данный момент не поддерживаются на сервере BlueGene

Создание ssh-ключа

Перед созданием ключа убедитесь, что у Вас еще нет ключа:
  • ls -l ~/.ssh
  • если команда отработала без ошибок и вы получили в выводе файлы id_rsa/id_dsa то у Вас уже есть нужный ключ, создавать не требуется
    • Пример:
      -rw-rw-r-- 1 user user    89 янв.  24  2013 config
      -rw------- 1 user user  1679 янв.  27  2012 id_rsa
      -rw-r--r-- 1 user user   393 янв.  27  2012 id_rsa.pub
      -rw------- 1 user user 21618 дек.   9 18:10 known_hosts
      
    • если несмотря на наличие ключа Вы хотите создать отдельный ключ для сервера, то используйте универсальный способ
  • если в выводе вы получили файлы id_ecdsa, то ключ у Вас есть, но в данный момент на BlueGene по такому виду ключа не зайти.
    • в этом случае придется создать rsa-ключ, можно использовать простой способ
  • если ssh-ключа у Вас нет, то требуется создать (можно использовать простой способ)

Простой способ создания ssh-ключей

Для создания ключа введите команду: ssh-keygen -t rsa В результате эта команда в интерактивном режиме создаст пару ssh-ключей (открытый и закрытый) типа RSA с длиной ключа 2048 бит. Местоположение файлов:
  • закрытый ssh-ключ (identification): ~/.ssh/id_rsa
  • публичный ssh-ключ (public key): ~/.ssh/id_rsa.pub.

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

Универсальный способ создания ssh-ключей

Будем использовать ту же программу (ssh-keygen), но с дополнительными параметрами:
  • -t тип-ключа (rsa/dsa/...): какой тип ключа нужен
  • -b длина ключа: какой длины (для dsa длина всегда 1024)
  • -f имя_ключа: в какой файл сохранять ключ, если мы хотим разные ключи для разных целей (подробнее о том, зачем это может быть нужно можете посмотреть в разделе "Использование нескольких ssh-ключей" на этой странице и на странице посвященную ssh-ключам)

Пример:
  • вводите: ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_hpc
  • в результате:
    • в интерактивном режиме будет создана пара ssh-ключей (открытый и закрытый) типа RSA с длиной ключа 4096 бит (разумеется Вы можете зашифровать закрытую часть ключа паролем).
    • ключи:
      • закрытый ssh-ключ (identification) будет сохранен в ~/.ssh/id_rsa_hpc
      • открытый ssh-ключ (public key) будет сохранен в ~/.ssh/id_rsa_hpc.pub
      • собственно о местоположении ключей будет сообщено в процессе создания, в нашем примере это выглядело так:
        Your identification has been saved in /home/user/.ssh/id_rsa_hpc.
        Your public key has been saved in /home/user/.ssh/id_rsa_hpc.pub.
        

За более подробной информацией обращайтесь к справочным страницам (man ssh-keygen, или на сайте OpenBSD ) и F.A.Q по OpenSSH

В дальнейшем не забудьте прописать в настройках программы ssh для данного сервера путь именно к этому закрытому ssh-ключу (в параметре IdentityFile файла ~/.ssh/config), о чем — в следующем разделе.

Также рекомендуем ознакомиться с настройкой (man ssh_config или на сайте OpenBSD).

Ниже представлен пример конфигурационного файла ~/.ssh/config:
Hostљregatta.hpc
љљљљHostnameљregatta1.cs.msu.su
љљљљUserљedu-vmk-stud-500-001
љљљљIdentityFileљ~/.ssh/id_rsa

Кратко:
  • Hostname: какое имя сервера использовать
  • User: под каким пользователем заходить
  • IdentityFile: какой ключ авторизует пользователя, указывается его закрытая часть (т.е. закрытый ssh-ключ)

В результате команда

$ ssh regatta.hpc

осуществит вход пользователю edu-vmk-stud-500-001 на regatta1.cs.msu.su с помощью ключа ~/.ssh/id_rsa

Зачем полезно указывать ключ — смотрите на странице по ssh ключам раздел по использованию различных ключей

Получение отпечатка ssh-ключа (fingerprint)

Для этого понадобится уже знакомая Вам программа ssh-keygen:
  • ssh-keygen -l -f путь_до_публичного_ssh-ключа, т.е:
    • если использовался простой метод создания, то: ssh-keygen -l -f ~/.ssh/id_rsa.pub, в результате будет что-то вида 2048 4c:d1:96:6f:dd:e5:67:ce:55:8b:fb:38:b2:a2:63:c5  user@host (RSA)
    • для универсального метода Вы должны указать путь до своего ключа, в нашем примере это будет: ssh-keygen -l -f ~/.ssh/id_rsa_hpc.pub, в результате в нашем примере будет 4096 82:80:b0:ab:1c:71:c0:ab:77:bd:8f:62:83:39:15:3b  user@host  (RSA)
  • в наших примерах мы использовали RSA-ключ, а в этом случае можно указывать и закрытый ключ (т.е. без .pub), вывод будет тот же

Пришлите вывод тому, кто спрашивает у Вас отпечаток (если хотите, можете перенаправить вывод команды ssh-keygen в файл, но можно и просто скопировать из терминала эту строку в письмо/документ/форму на сайте и т.д.)

Использование нескольких ssh-ключей

Edit | Attach | Print version | History: r6 | r4 < r3 < r2 < r1 | Backlinks | View wiki text | Edit WikiText | More topic actions...
Topic revision: r2 - 25 Dec 2013, RomanKondakov
 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback