Авторизация по SSH-ключу

Stepan Mikulov

Administrator
Команда форума
Использование SSH-ключа для подключения к серверу позволяет сделать работу более безопасной (снизится вероятность взлома учетной записи) и более удобной (не будет необходимости при каждом соединении вводить пароль).

Linux и MacOS​

Создание SSH-ключей​

  1. Запустите терминал на вашем компьютере и выполните команду:
    ssh-keygen
  2. Вы увидите примерно следующее сообщение:
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/user/.ssh/id_rsa):
    Нажмите Enter - ключ будет сохранен в указанную директорию по умолчанию.
  3. Далее вам будет предложено задать пароль (кодовую фразу) для ключа. Вы можете задать ее или оставить пустой, просто нажав Enter. Обратите внимание, что если вы зададите кодовую фразу, ее потребуется вводить при каждой авторизации по ключу.
Процедура создания ключей завершена, ключи сохранены в директории ~/.ssh/ в файлах id_rsa и id_rsa.pub. Теперь их необходимо скопировать на сервер.

Копирование ключей на сервер

  1. Выполните в терминале следующую команду, указав вместо user имя пользователя, созданного на сервере, а вместо server - IP-адрес вашего сервера:
    ssh-copy-id user@server

    #Например:
    ssh-copy-id admin@2.59.43.145
  2. В результате содержимое файла с публичным ключом id_rsa.pub будет скопировано в файл ~/.ssh/authorized_keys на сервере, и в дальнейшем вы сможете устанавливать соединение с сервером, используя команду:
    ssh user@server

    #Например:
    ssh admin@2.59.43.145

Копирование ключей на сервер​

В процессе копирования ключей вам потребуется утилита pageant. Вы можете скачать дистрибутив pageant.exe с официального сайта PuTTY.

  1. Подключитесь к серверу по SSH и выполните команду для создания на сервере директории и файла для хранения ключей:
    mkdir ~/.ssh

    chmod 0700 ~/.ssh

    touch ~/.ssh/authorized_keys

    chmod 0644 ~/.ssh/authorized_keys
  2. Откройте созданный файл с помощью текстового редактора:
    nano ~/.ssh/authorized_keys
  3. Вставьте в него скопированный на предыдущем шаге текст public key из окна PuTTYgen и сохраните файл.
  4. Запустите pageant - его иконка появится в трее. Щелкните по ней правой кнопкой мыши и выберите Add Key.
  5. В открывшемся окне укажите путь к приватному ключу mykey.ppk, сохраненному ранее, и нажмите Open. Если при создании ключа вы указывали кодовую фразу, pageant запросит ее на данном этапе.
  6. Для проверки работы авторизации по ключу снова запустите утилиту PuTTY, подключитесь к вашему серверу и введите свой логин. Если все настроено корректно, вы увидите подобный вывод в окне консоли:
    Authenticating with public key "rsa-key-20151220" from agent
    Наверх

Отключение доступа по паролю​

Для того, чтобы доступ к серверу мог осуществляться только по ключу, необходимо запретить авторизацию по паролю. Для этого требуется внести правки в файл /etc/ssh/sshd_config.

  1. Откройте файл командой:
    sudo nano /etc/ssh/sshd_config
  2. Найдите в нем строку PasswordAuthentication и замените ее значение на: PasswordAuthentication no .
  3. Сохраните изменения, после чего перезапустите службу SSH:
    sudo service ssh restart
 
Последнее редактирование:
Сверху