• База знаний
  • /
  • Блог
  • /
  • Wiki
  • /
+380 (44) 364 05 71

Содержание:

  • обзор;

  • настройка аутентификации по открытому ключу с помощью SSH для Linux или OS X;

  • настройка аутентификации по открытому ключу с помощью PuTTY для Windows.

 

Обзор

Подключение к удаленной системе с помощью SSH – это более надежный и безопасный способ аутентификации по сравнению с входом с помощью логина или пароля. Аутентификация с открытым ключом SSH основана на асимметричных криптографических алгоритмах, которые генерируют пару ключей (приватный и публичный).

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

.ssh/authorized_keys

Чтобы использовать SSH аутентификацию по открытому ключу:

  • на удаленной системе должна быть установлена версия SSH. Это предполагает, что удаленная система использует OpenSSH, как, например, в центральных системах UITS в университете Индианы. Если удаленная система использует другую версию SSH (например, Tectia SSH), процесс, который ниже описан, может быть неправильным.

  • На компьютере, который вы используете для подключения к удаленному серверу, должна быть установлена версия SSH. Этот документ содержит инструкцию для создания пары ключей с командной строкой SSH для Linux или OS X и PuTTY для Windows.

  • Вы должны перенести публичный ключ в удаленную систему. Вам нужно войти в удаленную систему с помощью логина и пароля или на правах администратора добавить публичный ключ в файл ~/.ssh/authorized_keys

 

Настройка аутентификации по открытому ключу с помощью SSH для Linux и OS X

Чтобы настроить SSH аутентификацию для Linux или OS X:

  1. Войдите в компьютер, который вы используете для доступа к удаленному хосту. С помощью командной строки SSH сгенерируйте пару ключей (используя DSA или RSA алгоритм).

    • Чтобы создать DSA ключи, введите:

ssh-keygen -t dsa
    • Чтобы сгенерировать RSA ключи, введите:

ssh-keygen -t rsa
  1. Вам будет предложено указать имя файла (чтобы сохранить пару ключей) и пароль (для защиты вашего приватного ключа).

    • Filename: чтобы установить имя файла по умолчанию для пары ключей, нажмите Enter или Return, не вводя имя файла. Вы можете указать имя файла (например, my_ssh_key) и нажать Enter или Return. Тем не менее, во многих удаленных хостах (в том числе системах IU) настроен доступ для приватных ключей с именем файла и путем по умолчанию (~/.ssh/id_rsa для RSA ключей и ~/.ssh/id_dsa для DSA ключей). Следовательно, для аутентификации с приватным ключом, который имеет другое имя файла или путь, вам необходимо вызвать его либо в командной строке SSH, либо с помощью файла конфигурации SSH (~/.ssh/config).

    • Password: введите пароль, который содержит как минимум 5 символов, после этого нажмите Enter или Return. Если вы нажали Enter или Return, не указав пароль, ваш приватный ключ будет не защищен.

      Примечание: UITS настоятельно рекомендует использовать пароль для приватного ключа. Ваш приватный ключ будет создан с использованием имени файла по умолчанию (например, id_rsa) или имени файла, который вы укажете (например, my_ssh_key). Он будет храниться на вашем компьютере в папке .ssh вашей директории (например, ~/.ssh/id_rsa или ~/.ssh/my_ssh_key).
      У соответствующего публичного ключа (с расширением .pub) будет то же имя, он будет храниться в том же месте (например, ~/.ssh/id_rsa.pub или ~/.ssh/my_ssh_key.pub).

  1. Используйте SFTP или SCP, чтобы скопировать файл публичного ключа (например, ~/.ssh/id_rsa.pub) в ваш аккаунт на удаленной системе (например, darvader@deathstar.empire.gov). Например, используя командную строку SCP:
    scp ~/.ssh/id_rsa.pub darvader@deathstar.empire.gov:

    Или в качестве примера используйте кластер IU Karst (замените username на имя пользователя ID сети):
    scp ~/.ssh/id_rsa.pub username@karst.uits.iu.edu:

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

  1. Войдите в удаленную систему, используя имя пользователя и пароль вашего аккаунта. Для системы IU используйте логин и пароль ID сети.

    Примечание: Если удаленная система не поддерживает аутентификацию с помощью паролей, системный администратор должен добавить публичный ключ в файл ~/.ssh/authorized_keys для вашего аккаунта. Если в вашем аккаунте нет файла ~/.ssh/authorized_keys, системный администратор может создать его для вашей учетной записи. Когда публичный ключ будет добавлен в файл на удаленной системе, процесс настройки будет завершен, и вы сможете использовать SSH для своей учетной записи с компьютера, на котором есть ваш приватный ключ.

  1. Если ваша учетная запись на удаленной системе не содержит файл ~/.ssh/authorized_keys, создайте его. В командной строке введите следующее:

    mkdir -p ~/.ssh
    touch ~/.ssh/authorized_keys

    Примечание
    : Если ваш аккаунт на удаленной системе содержит файл ~/.ssh/authorized_keys, выполнение этих команд не повредит существующую директорию или файл.

  1. На удаленной системе добавьте содержимое вашего публичного ключа (напр. ~/id_rsa.pub) в новую строку файла ~/.ssh/authorized_keys; в командной строке введите:

    cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

    Вы можете проверить содержимое ~/.ssh/authorized_keys, чтобы убедиться, что ваш публичный ключ был добавлен правильно; в командной строке введите:

    more ~/.ssh/authorized_keys

  1. Теперь вы можете безопасно удалить файл открытого ключа (например, ~/id_rsa.pub) из своей учетной записи в удаленной системе; в командной строке введите:

    rm ~/id_rsa.pub

    Если вы желаете хранить копию публичного ключа в удаленной системе, переместите его в свою .ssh директорию; в командной строке введите:

    mv ~/id_rsa.pub ~/.ssh/

  1. Повторите шаги 3-7, чтобы добавить свой публичный ключ в другие удаленные системы, к которым вы хотите получить доступ с компьютера, который имеет ваш личный ключ, с помощью SSH аутентификации.

  2. Теперь вы можете подключиться к удаленной системе с помощью SSH (например, username@host2.somewhere.edu) с компьютера (например, host1), который имеет ваш приватный ключ (например, ~ /.ssh/id_dsa):

    • Если ваш приватный ключ защищен паролем, удаленная система предложит вам ввести пароль (пароль вашего приватного ключа не передается в удаленную систему):

      [username@host1 ~]$ ssh username@host2.somewhere.edu
      Enter passphrase for key '/username/Host1/.ssh/id_dsa':
      Last login: Mon Oct 20 09:23:17 2014 from host1.somewhere_else.edu

    • Если ваш приватный ключ не защищен паролем, удаленная система переместит вас в командную строку вашей директории без запроса пароля:

      [username@host1 ~]$ ssh username@host2.somewhere.edu
      Last login: Mon Oct 20 09:23:17 2014 from host1.somewhere_else.edu

      Примечание: Если приватный ключ, который вы используете, не имеет имени и пути по умолчанию (т. е. не ~ /.ssh/id_rsa или ~/.ssh/id_dsa), вы должны вызвать его, используя один из способов:

      Через командную строку SSH: добавьте -i и путь к вашему приватному ключу. Например, чтобы вызвать приватный ключ host2_key, хранящийся в каталоге ~ /.ssh/old_keys, при подключении к вашей учетной записи на удаленном хосте (например, username@host2.somewhere.edu) введите:

      ssh -i ~/.ssh/old_keys/host2_key username@host2.somewhere.edu

      Через файл конфигурации SSH: SSH получает данные конфигурации из следующих источников:

      1. Из опций командной строки.

      2. Из файла конфигурации пользователя (~/.ssh/config), если он существует.

      3. Из общесистемного файла конфигурации (/etc/ssh/ssh_config).

Файл конфигурации SSH представляет собой текстовый файл, который содержит ключевые слова и аргументы. Чтобы указать, какой приватный ключ следует использовать для подключения к конкретному удаленному хосту, используйте текстовый редактор для создания ~ / .ssh / config, который включает ключевые слова Host и IdentityFile.

Например, для подключения к host2.somewhere.edu и вызова приватного ключа host2_key, который хранится в директории ~/.ssh/old_keys, создайте файл ~/.ssh/config. В нем должны содержаться:

Host host2.somewhere.edu
IdentityFile ~/.ssh/old_keys/host2_key

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

Вы можете добавить несколько директив Host и IdentityFile, чтобы указать другой приватный ключ для каждого хоста; например:

Host host2.somewhere.edu
IdentityFile ~/.ssh/old_keys/host2_key
Host host4.somewhere.edu
IdentityFile ~/.ssh/old_keys/host4_key
Host host6.somewhere.edu
IdentityFile ~/.ssh/old_keys/host6_key

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

Host *.somewhere.edu
IdentityFile ~/.ssh/old_keys/all_hosts_key

Подробнее о файле конфигурации SSH см. на странице руководства в Интернете или с помощью командной строки (man ssh_config)

 

Настройка аутентификации по открытому ключу с помощью PuTTY для Windows

Примечание: клиент PuTTY SSH, утилита для генерации ключей PuTTYgen, агент аутентификации Pageant SSH, а также утилиты PuTTY SCP и SFTP доступны для бесплатной загрузки для Windows.

Чтобы настроить аутентификацию с публичным ключом с помощью PuTTY для Windows:

  1. Войдите в свой компьютер и откройте утилиту генерации ключей PuTTYgen.

  2. В разделе «Параметры» выберите SSA-2 RSA или SSH-2 DSA; рядом с «Number of bits in a generated key», оставьте значение по умолчанию (1024).

  3. В разделе «Actions» нажмите «Generate», а затем, когда появится запрос, переместите курсор на поле «Key» (это приводит к случайной последовательности, которую утилита использует для создания вашей пары ключей). Когда утилита сгенерирует вашу пару ключей, она отобразит публичный ключ в поле «Key».

  1. В текстовом поле "Key passphrase" и "Confirm passphrase" введите пароль вашего приватного ключа.

    Примечание: UITS настоятельно рекомендует использовать пароль для защиты вашего приватного ключа.

  1. Сохраните ваш публичный ключ:

    • В разделе «Actions» рядом с «Save the generated key» нажмите «Save public key».

    • Дайте файлу имя (например, putty_key), выберите местоположение на вашем компьютере, чтобы сохранить его, и нажмите «Save».

  1. Сохраните приватный ключ:

    • В разделе "Actions", рядом с "Save the generated key", нажмите Save private key.

      Примечание: если вы не укажите пароль для своего приватного ключа, утилита спросит, уверены ли вы, что хотите сохранить его без пароля. Нажмите «Да», чтобы продолжить, или «Нет», чтобы вернуться и создать пароль для вашего приватного ключа.

    • Выберите "Save as type" для PuTTY Private Key Files (*.ppk), дайте имя файлу (например, putty_private_key), выберите местоположение для файла и нажмите «Save».
      Войдите в удаленную систему, используя имя пользователя и пароль вашей учетной записи.

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

  1. Если в вашем аккаунте нет файла ~/.ssh/authorized_keys, создайте его; в командной стоке введите:
    mkdir -p ~/.ssh
    touch ~/.ssh/authorized_keys

    Примечание: если ваш аккаунт на удаленной системе содержит файл ~/.ssh/authorized_keys, выполнение данных команд не повредит соответствующую директорию или файл.

  1. На вашем компьютере, через утилиту PuTTYgen, скопируйте содержимое публичного ключа, которое отображается в области под «Key» в буфер обмена. Затем на удаленной системе, используя любой текстовой редактор, вставьте его в новую строку файла ~/.ssh/authorized_keys, после чего сохраните файл.

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

  3. В области уведомлений Windows щелкните правой кнопкой мыши значок Pageant, выберите Add Key, перейдите в папку, в которой вы сохранили приватный ключ (например, putty_private_key.ppk), выберите файл и нажмите Open.

  4. Если ваш приватный ключ защищен паролем, Pageant откроет поле для ввода пароля. Введите пароль и нажмите ОК. Если ваш приватный ключ не защищен паролем, Pageant добавит его без запроса пароля. В любом случае, Pageant хранит незашифрованный приватный ключ в памяти для использования PuTTY во время сеанса SSH для удаленной системы с публичным ключом.

  5. На своем компьютере откройте PuTTY SSH клиент:

    • в поле Session:

    • В разделе «Нost Name» (или IP address) введите свое имя пользователя и имя хоста удаленного сервера с публичным ключом; например:
      dsidious@deathstar.empire.gov

      Или используйте аккаунт IU Karst в качестве примера (замените username логином вашей Network ID):
      username@karst.uits.iu.edu 

    • Убедитесь, что в поле "Connection type" выбран SSH.

    • В списке «Category», который отображается слева, перейдите к экрану Auth (Connection > SSH > Auth). В разделе «Authentication methods», выберите «Attempt authentication using Pageant».

    • Вернитесь на экран «Session» и в разделе «Saved Sessions», введите имя (например, Deathstar), после чего нажмите «Save»

    • Нажмите «Open», чтобы подключиться к вашей учетной записи в удаленной системе. При запуске Pageant в фоновом режиме PuTTY автоматически извлекает незашифрованный приватный ключ из Pageant и использует его для аутентификации. Так как у Pageant есть пароль вашего приватного ключа (если данная опцию активирована), удаленная система переместит вас в командную строку в вашей учетной записи без запроса пароля.

      Примечание: Технически, на этом этапе настройка завершена. В будущем, если вы откроете свой рабочий стол Windows, вы можете запустить Pageant, добавить приватный ключ, а затем использовать PuTTY для любого удаленного ресурса с публичным ключом. Кроме того, вы можете создать ярлык в папке Windows Startup для запуска Pageant и автоматической загрузки вашего приватного пароля при каждом открытии рабочего стола.

  1. Откройте папку Startup:

    • Для Windows 8, нажмите Win-r и в поле"Open" тип shell:startup, после этого нажмите Enter.

    • Для Windows 7, в Start menu нажмите All Programs, найдите Startup, щелкните правой кнопкой мыши и выберите Open.
      А также, независимо от версии, перейдите в папку Startup, замените user_profile именем пользователя вашего аккаунта Windows:
      C:\Users\user_profile\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

  1. Щелкните правой кнопкой мыши на папке Startup, выберите New и Shortcut.

  2. В текстовом поле «Type the location of the item» укажите путь для Pageant (pageant.exe) с последующим путем файла вашего приватного ключа (например, putty_private_key.ppk); оба пути выделите с помощью кавычек, например:
    "C:\Program Files (x86)\PuTTY\pageant.exe" "C:\Users\user_profile\ssh_key\putty_private.ppk" 

  1. Нажмите «Next» , после чего в текстовом поле "Type a name for this shortcut» укажите имя ярлыка (например, PAGEANT).

  2. Нажмите Finish.

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

Внимание!  Для разных сервисов нужно использовать разные наборы ключей. Например для сервиса Gitlab одна пара ключей, а для авторизации по SSH на VPS хостинг другая.

В следующей статье мы поговорим про Бастион, методику единого сервера авторизации.

 

 

 

Дата: 27.10.2017
Автор: Евгений Шерман
Голосование

Авторам статьи важно Ваше мнение. Будем рады его обсудить с Вами:

comments powered by Disqus
Спасибо, что выбираете FREEhost.UA