Инструкции#

Добавление публичного SSH-ключа в Linux#

Чтобы добавить публичный ключ в дистрибутиве Linux, можно воспользоваться следующей инструкцией:

  1. Определить, в каком файле хранятся публичные ключи в системе. Для этого надо выполнить следующую команду:

    $ cat /etc/ssh/sshd_config | grep -i authorizedkeysfile
    AuthorizedKeysFile .ssh/authorized_keys
    
  2. В домашней директории необходимо создать директорию и в ней файл, если их нет (из вывода команды пункта 1 — это директория .ssh, в которой лежит файл authorized_keys).

    Важно

    Директория .ssh и файл authorized_keys должны принадлежать пользователю, под которым будет производиться вход в систему (в случае если директория будет создана от суперпользователя, то её владельцем будет root). Чтобы изменить владельца директории, нужно воспользоваться командой sudo chown -R ec2-user:ec2-user /home/<имя пользователя>/.ssh/

  3. Через текстовый редактор (vim, nano, etc.) добавить содержимое публичного ключа в файл authorized_keys. Если там уже находится другой публичный ключ, то его не обязательно удалять — можно дописать новый в файл. В таком случае можно заходить в систему при помощи SSH с двумя разными приватными ключами . Ниже приведён пример публичного ключа:

    ../../../_images/chern.png

    Важно

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

  4. После того, как добавили новый публичный ключ, необходимо перезапустить sshd:

    • Для систем, использующих SysVinit (CentOS 6):

      sudo /etc/init.d/sshd restart
      
    • Для систем, использующих Systemd (CentOS 7):

      sudo systemctl restart sshd
      

Добавление публичного SSH-ключа в Putty#

Putty использует свой формат для ключей (.ppk). Чтобы использовать сторонний приватный ключ в putty, его необходимо предварительно конвертировать в puttygen:

  1. В программе PuTTY Key Generator перейти в Conversions Import key.

    ../../../_images/putty.png
  2. В появившемся окне выбрать приватный ключ (обычно он в формате OpenSSH и имеет имя .private).

  3. После выбора окно заполнится данными из ключа.

    ../../../_images/putty2.png
  4. В данном окне можно добавить свой комментарий в строке Key comment, также необходимо добавить пароль к приватному ключу в строках Key passphrase и Confirm passphrase.

  5. Нажмите Save Private Key, чтобы сохранить приватный ключ в формате, воспринимаемом программой PuTTY.

В случае если один и тот же публичный ключ используется на нескольких серверах, не обязательно хранить на каждом сервере приватный ключ, чтобы можно было подключиться к другому серверу. Для этой цели можно использовать Pagent (PuTTY authentication agent). Для добавления ключа в Pagent воспользуйтесь следующей инструкцией:

  1. Запустить pagent.exe. После запуска в системном трее появится иконка программы.

    ../../../_images/putty3.png
  2. Для управления ключами нужно два раза левой кнопкой мыши нажать по иконке программы Pagent в системном трее.

    ../../../_images/putty4.png
  3. В данном окне нажать Add Key и в появившемся окне выбрать приватный ключ формата .ppk. Если у ключа есть пароль, то при добавлении ключа его необходимо ввести в диалоговом окне.

Дополнительная возможность: для более удобного добавления приватного ключа в Pagent можно воспользоваться следующей особенностью:

  1. Создайте ярлык для программы Pagent.

  2. Нажмите правой кнопкой по ярлыку и выберите Properties.

  3. В поле Target через пробел добавьте полный путь до приватного ключа в формате .ppk.

В последующем, при открытие этого ярлыка приватный ключ будет автоматически добавляться в Pagent.

Для использования Pagent в PuTTY необходимо воспользоваться следующей инструкцией:

  1. Запустить программу putty.exe.

  2. Перейти в Connection SSH Auth.

    ../../../_images/putty5.png
  3. В данной вкладке поставить галочку Allow agent forwarding.

  4. Перейти во вкладку Session, выбрать Default Settings, нажать Save.

    ../../../_images/putty6.png

Теперь при создании нового подключения у него в настройках будет указано использование Pagent для пересылки ключей. Можно не использовать Pagent, если в пункте 3 вместо Allow agent forwarding, нажать Browse и выбрать приватный ключ, который будет использоваться для соединения по SSH к виртуальной машине.