Как создать открытый/закрытый SSH-ключ в Linux

Февраль5

Linux

Все линуксоиды частенько пользуются SSH(Secure Shell) протоколом. Пользователи Windows так же иногда вынуждены с ним сталкиваться( например — некоторые хостинг провайдеры до сих пор предоставляют некоторую часть подробной информации об аккаунте именно по ssh ). Т.к. пользоваться протоколом иногда нужно довольно часто, вбивать все время при соединении с хостом пароль — задача довольно напряжная и, к тому же, еще и рискованная — в такие моменты пароль можно перехватить. Чтобы не гонять пароль туда сюда по сотне раз на дню, и придумали систему  ssh-ключей. Созданию таких ключей будет посвящена эта статья.

Генерируем ключ

В линуксе, открываем консоль:

$ ssh-keygen -t rsa

можно так же создавать ключ, используя технологию DSA (Digital Signing Algorithm):

$ ssh-keygen -t dsa

Особенной разницы между этими технологиями для простого обывателя нет, обе достаточно надежны, поэтому в выборе можно особенно не заморачиваться.

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

ssh_key1

Дальше, нас попросят ввести идентификационную фразу. (ВНИМАНИЕ! Это не фраза для соединения с удаленным хостом.) Она нужна для разблокировки закрытого ключа, поэтому она не поможет нам получить доступ к удаленному серверу, даже если на нем хранится наш закрытый ключ. Ввод этой фразы не является обязательным. Чтобы оставить ее пустой, просто можно нажать «Enter».

ssh_key2

Теперь наш открытый( публичный ) и закрытый SSH-ключи могут быть сгенерированы. Открываем файловый менеджер и переходим в директорию .ssh. Там должны лежать два файла: id_rsa и id_rsa.pub.

Загружаем файл id_rsa.pub в домашнюю директорию нашего удаленного хоста (под Linux). Далее нужно подключиться к нему с помощью SSH и переместить открытый ключ в его целевую директорию с помощью команд:

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

Решение возможных проблем

Теперь мы можем подключаться по ключу, но если вдруг что-то не получается, то нужно еще выставить права:

$ chmod -u=rwX,go= ~/.ssh
$ chmod -u=rw,go=r ~/.ssh/authorized_keys

Если это не помогло, смотрим конфигурационный файл SSH( в примере используем редактор nano ):

$ sudo nano /etc/ssh/sshd_config

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

RSAAuthentication yes
PubkeyAuthentication yes 
PasswordAuthentication no

Дальше нажимаем «ctrl + o»(nano), чтобы сохранить изменения, затем «ctrl + x»(nano), чтобы закрыть файл.

Перезапускаем сервер SSH на удаленном хосте:

$ sudo /etc/init.d/ssh reload

На этом все. Теперь мы можем выполнить авторизацию по ssh-ключу со своим удаленным хостом с помощью команды:

$ ssh -i /path-to-private-key username@remote-host-ip-address

Поделиться в соц. сетях

Метки:
Copyright © 2013-2017. All rights reserved.

Опубликованно Февраль 5, 2015 by Feanor184 в категории Linux

Об Авторе

Постигаю Linux, учу Python, пытаюсь программировать)

6 комментарий(ев) к записи “Как создать открытый/закрытый SSH-ключ в Linux

  1. Михаил

    Обзор ssh генерации ключа отличный, вопрос в другом для каких целей предназначен этот самый ssh ключ что он делает в чем помогает и так ли он необходим? Я с удовольствием почитал бы полный обзор про ssh а не только про его генерацию.
    Немного не в тему но все же. если уважаемый автор осветит работу с git в деталях доступно — «для чайников» я с удовольствием изучу данный обзор

    1. Feanor184 Автор поста

      ssh ключ нужен для безопасности при частых соединениях по одному и тому же каналу. По сути — закручиваем гайки. Про git уже ответил)

  2. Artur

    Я так понял что id_rsa это локальный ключ, а id_rsa.pub это то что валяется на сервере.
    А можно имея только id_rsa.pub (украсть) подключиться по протоколу ssh к серверу?
    Возможен ли перехват id_rsa?.. или они генерируются исключительно под машину?

  3. Vadim

    Использую ssh ключи уже 7 лет) Очень удобно! Особенно для доступов к серверам — исключается вероятность перехвата пароля злоумышленником и ручками не надо ничего вбивать.

  4. Pingback: Как пользоваться SSH | Losst

Добавить комментарий для Vadim Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

=

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