- SSH-ключи для Облачных серверов
- Работа с SSH-ключами
- Как создать SSH ключ
- Как добавить SSH ключ на сервер
- Как добавить SSH-ключ при создании или переустановке облачного сервера
- Как создать ключ для авторизации по SSH и добавить его на сервер?
- Создание SSH-ключей в Linux на примере CentOS
- Создание SSH-ключей на Windows с PuTTYgen
- Отключение аутентификации по паролю
- Авторизация по ключу SSH
- Как работают ключи SSH?
- Как создать ключи SSH?
- Загрузка ключа на сервер
- Отключение проверки пароля
- Выводы
SSH-ключи для Облачных серверов
В этой статье мы расскажем, для чего нужен SSH-ключ, как создать SSH ключ и как добавить SSH ключ на сервер.
SSH-ключ — безопасный способ соединения с сервером. Подключение по SSH с помощью ключа исключает риск, который связан с подбором и взломом вашего пароля.
Для аутентификации используются два ключа: приватный и публичный.
Публичный ключ хранится на сервере в корневом каталоге, а приватный ключ остаётся на локальном компьютере в зашифрованном виде. Каждый раз, когда вы обращаетесь к серверу, происходит сопоставление ключей. Таким образом, отпадает необходимость в авторизации с помощью пароля, и данные от вашего сервера остаются в безопасности.
Работа с SSH-ключами
Чтобы воспользоваться SSH-ключом на облачном сервере, для начала его необходимо создать.
Как создать SSH ключ
Способ создания SSH-ключа зависит от операционной системы, которая установлена на вашем компьютере. Выберите нужную операционную систему и следуйте инструкции:
Сгенерировать ключ в ОС Linux можно с помощью терминала. Для этого:
- в Unity (Ubuntu): «Главное меню» — в поисковой строке введите слово «Терминал», либо просто нажмите комбинацию клавиш: Ctrl+Alt+T;
- в Xfce (Xubuntu): «Главное меню» — «Приложения» — «Система» — «Терминал»;
- в KDE (Kubuntu): «Главное меню» — «Приложения» — «Система» — «Терминал».
Введите команду ssh-keygen и нажмите Enter.
Если команда ssh-keygen не найдена, установите пакет openssh .
В терминале будет выведено следующее сообщение:
Нажмите Enter, если хотите, чтобы файл был сохранен в директории по умолчанию. Или введите собственные адрес/имя_файла, чтобы ключ был сохранен в нужной вам директории.
Далее вам будет предложено ввести кодовое слово для дополнительной защиты ключа. Вы можете пропустить данный шаг и нажать Enter.
Если вы укажете кодовое слово, при обращении на сервер оно будет дополнительно запрашиваться и сохраняться на некоторое время. Данный способ позволяет дополнительно защитить ваш приватный ключ.
После генерации ключа в папке .ssh будут созданы два файла: id_rsa (приватный ключ) и id_rsa.pub (публичный ключ).
В терминале будет отображаться отпечаток сгенерированного ключа:
Введите команду cat
/.ssh/id_rsa.pub . В терминале откроется файл с вашим публичным ключом:
Пользователям Windows необходимо скачать SSH-клиент PuTTY на официальном сайте (англоязычная версия). В его состав входит специальная программа для генерации ключей PuTTYgen.
Запустите PuTTYgen и нажмите кнопку Generate:
Приведите в движение курсор мыши в окне программы для сбора случайных данных. Индикатор загрузки (зелёная полоска) отображает процесс генерации ключа:
После того как ключ будет создан, программа отобразит информацию с публичным ключом и отпечатком приватного ключа:
Важно: Публичный ключ в формате openSSH можно сохранить, только скопировав его вручную. Ключ, сохранённый с помощью кнопки «Save public key», система Linux не распознаёт.
Сгенерировать ключ в macOS можно при помощи терминала.
Введите команду ssh-keygen -t rsa и нажмите Enter:
Вам будет предложено ввести кодовое слово для дополнительной защиты подключения. Вы можете пропустить данный шаг и нажать Enter. Если вы укажете кодовое слово, оно будет дополнительно запрашиваться при каждом подключении к серверу:
После успешной генерации ключа будет создано два файла: id_rsa (приватный ключ) и id_rsa.pub (публичный ключ). В терминале будет отображаться отпечаток ключа и его изображение:
После создания SSH-ключа вы можете добавить его на сервер с помощью инструкций ниже.
Как добавить SSH ключ на сервер
Если вы уже создали облачный сервер, то добавить SSH-ключ можно только на самом сервере, через подключение по SSH.
Чтобы добавить созданный SSH-ключ на существующий сервер, выберите операционную систему, которая установлена на вашем компьютере, и следуйте инструкции:
- в Unity (Ubuntu): «Главное меню» — в поисковой строке введите слово «Терминал», либо просто нажмите комбинацию клавиш: Ctrl+Alt+T;
- в Xfce (Xubuntu): «Главное меню» — «Приложения» — «Система» — «Терминал»;
- в KDE (Kubuntu): «Главное меню» — «Приложения» — «Система» — «Терминал».
Введите команду: ssh-copy-id root@123.123.123.123 ,
где root — логин вашего сервера,
123.123.123.123 — IP-адрес сервера. Его можно узнать в информационном письме, которое было отправлено вам после создания сервера.
Нажмите Enter и введите пароль от вашего сервера.
После успешного подключения ваш ключ будет добавлен на сервер и вы сможете подключаться к серверу без обязательного ввода пароля.
Все действия нужно выполнять на сервере через подключение по SSH с помощью SSH-клиента PuTTY.
Создайте файл с вашим публичным ключом при помощи команды echo your_public_key >> authorized_keys .
Добавьте ваш приватный ключ в PuTTY:
Введите команду: ssh-copy-id user@123.123.123.123 ,
- user — имя пользователя;
- 123.123.123.123 — IP-адрес сервера. Его можно узнать в информационном письме, которое было отправлено вам после создания сервера.
Нажмите Enter и введите пароль от вашего сервера. После успешного подключения ваш ключ будет добавлен на сервер и вы сможете подключаться к серверу без обязательного ввода пароля.
После добавления SSH-ключа вы можете подключиться к вашему серверу по SSH без ввода пароля.
Как добавить SSH-ключ при создании или переустановке облачного сервера
Добавление SSH-ключа через панель управления облачными серверами возможно только при создании сервера или переустановке.
При добавлении SSH-ключа через панель облачных серверов ключ будет добавлен для root пользователя.
Придумайте и введите название SSH-ключа. В поле SSH-ключ вставьте ваш публичный ключ и нажмите Добавить SSH-ключ:
Готово, после создания сервера ваш ключ будет добавлен на сервер. Созданный ключ будет отображаться на вкладке «Настройки»:
Перейдите в панель управления облачными серверами и следуйте инструкции:
Выберите сервер. Нажмите на значок Шестерёнка, а затем выберите Переустановить систему:
На этапе переустановки системы нажмите Добавить SSH-ключ:
Придумайте и введите имя SSH-Ключа. В поле SSH-key вставьте ваш публичный ключ и нажмите Добавить SSH-ключ:
Выберите добавленный ключ и ОС для переустановки, затем нажмите кнопку Переустановить систему:
Готово, после переустановки ваш ключ будет добавлен на сервер. Созданный вами ключ будет отображаться на вкладке «Настройки»:
После добавления SSH-ключа вы можете подключиться к вашему серверу по SSH без ввода пароля.
Виртуализация KVM, почасовая оплата, резервные копии, готовые шаблоны, 8 доступных ОС на выбор!
Источник
Как создать ключ для авторизации по SSH и добавить его на сервер?
SSH-ключи используются для идентификации клиента при подключении к серверу по SSH-протоколу . Используйте этот способ вместо аутентификации по паролю.
SSH-ключи представляют собой пару — закрытый и открытый ключ. Закрытый должен храниться в закрытом доступе у клиента, открытый отправляется на сервер и размещается в файле authorized_keys.
Создание SSH-ключей в Linux на примере CentOS
На клиентской стороне должен быть установлен пакет ssh (openssh). На серверах FirstVDS с шаблонами по умолчанию необходимое ПО уже установлено.
На клиентском компьютере в командной строке выполните команду генерации ключей:
Введите путь файла, в который будут помещены ключи. Каталог по умолчанию указан в скобках, в примере /домашний_каталог/.ssh/id_rsa . Если хотите оставить расположение по умолчанию, нажмите Enter .
Пароль (passphrase) используется для ограничения доступа к закрытому ключу. Пароль усложнит использование ключа третьими лицами в случае утраты. Если не хотите использовать секретную фразу, нажмите Enter без заполнения строки.
Успешно сгенерировав пару ключей, вы увидите уведомление:
Открытый ключ хранится в файле /домашний_каталог/.ssh/id_rsa.pub , закрытый — /домашний_каталог/.ssh/id_rsa .
Скопируйте открытый ключ на сервер в файл /домашний_каталог/.ssh/authorized_keys . Одной строкой:
Или откройте этот файл на сервере редактором vi и вставьте строку с открытым ключом после ssh-rsa .
Ещё один способ скопировать ключ в authorized_keys — команда echo , которая помещает строку в конец файла.
Теперь можно отключить на сервере аутентификацию по паролю и использовать только SSH-ключи.
Создание SSH-ключей на Windows с PuTTYgen
Если вы используете ОС Windows, то подключиться по SSH к вашему (Linux) серверу можно через PuTTY или OpenSSH . Генерация ключей в этом случае выполняется также при помощи этих программ. В примере мы используем клиент PuTTY.
Запустите приложение PuTTYgen , которое устанавливается вместе с PuTTY.
Выберите тип ключа SSH2-RSA и нажмите Generate .
В процессе генерации ключей несколько раз произвольно проведите мышкой по экрану приложения для создания случайных величин, используемых для ключей.
После завершения создания ключей открытый ключ выводится на экран, закрытый хранится в памяти приложения. Чтобы сохранить эти ключи нажмите Save public key и Save private key . Укажите расположение файлов с ключами.
При сохранении закрытого ключа, если не заполнено поле Key passphrase , появится запрос «Хотите ли вы сохранить ключ без секретной фразы?»
Теперь открытый ключ необходимо скопировать на сервер в файл authorized_keys . Используйте WinSCP или другой клиент для работы с файлами на удалённом Linux-сервере. Вы можете скопировать файл с открытым ключом целиком на сервер, чтоб его копия хранилась в папке .ssh
Откройте файл authorized_keys через WinSCP и файл, в который вы сохранили открытый ключ (public), на локальном компьютере текстовым редактором. Скопируйте значение ключа, сохраните и закройте файл в WinSCP.
При запуске PuTTY укажите путь к закрытому ключу на локальном компьютере. Для этого во вкладке Connections → Auth выберите необходимый путь.
Теперь можно отключить на сервере аутентификацию по паролю и использовать только SSH-ключи.
Отключение аутентификации по паролю
Подключитесь к серверу по SSH, используя пароль, и откройте файл sshd_config для редактирования.
Убедитесь, что указан правильный путь к открытым ключам SSH, поставьте значение параметра PasswordAuthentication no .
Перезапустите службу sshd.
Подключитесь к серверу по SSH без использования пароля. Например, запустите PuTTY, проверьте, что во вкладке Connections -> Auth содержится путь к закрытому ключу и откройте подключение.
В случае успешной аутентификации по SSH-ключу вы получите доступ к командной строке сервера и сообщение вида Authenticating with public key «rsa-key-20170510» , где rsa-key-20170510 — имя применённого закрытого ключа, указанное вами в файле authorized_keys .
Источник
Авторизация по ключу SSH
SSH или Secure Shell — это зашифрованный протокол, который часто используется для взаимодействия и удаленного управления серверами. Если вы захотите что-либо сделать на удаленном сервере, скорее всего, вам придется воспользоваться SSH и работать через терминал.
В SSH существует несколько способов авторизации. Вы можете каждый раз вводить пароль пользователя или использовать более безопасный и надежный способ — ключи SSH. Что самое интересное, он более удобен для применения, вам даже не нужно будет вводить пароль. В этой статье мы рассмотрим как настраивается авторизация по ключу SSH.
Как работают ключи SSH?
SSH сервер может выполнять аутентификацию пользователей с помощью различных алгоритмов. Самый популярный — это аутентификация по паролю. Он достаточно прост, но не очень безопасный. Пароли передаются по безопасному каналу, но они недостаточно сложны для противостояния попыткам перебора. Вычислительная мощность современных систем в сочетании со специальными скриптами делают перебор очень простым. Конечно, существуют другие способы дополнительной безопасности, например, fail2ban, но аутентификация по ключу SSH более надежна.
Каждая пара ключей состоит из открытого и закрытого ключа. Секретный ключ сохраняется на стороне клиента и не должен быть доступен кому-либо еще. Утечка ключа позволит злоумышленнику войти на сервер, если не была настроена дополнительная аутентификация по паролю.
Открытый ключ используется для шифрования сообщений, которые можно расшифровать только закрытым ключом. Это свойство и используется для аутентификации с помощью пары ключей. Открытый ключ загружается на удаленный сервер, к которому необходимо получить доступ. Его нужно добавить в специальный файл
Когда клиент попытается выполнить проверку подлинности через этот ключ, сервер отправит сообщение, зашифрованное с помощью открытого ключа, если клиент сможет его расшифровать и вернуть правильный ответ — аутентификация пройдена.
Как создать ключи SSH?
Сначала необходимо создать ключи ssh для аутентификации на локальном сервере. Для этого существует специальная утилита ssh-keygen, которая входит в набор утилит OpenSSH. По умолчанию она создает пару 2048 битных RSA ключей, которая подойдет не только для SSH, но и для большинства других ситуаций.
И так, генерация ключей ssh выполняется командой:
Утилита предложит вам выбрать расположение ключей. По умолчанию ключи располагаются в папке
/.ssh/. Лучше ничего не менять, чтобы все работало по умолчанию и ключи автоматически подхватывались. Секретный ключ будет называться id_rsa, а публичный id_rsa.pub.
Затем утилита предложит ввести пароль для дополнительного шифрования ключа на диске. Его можно не указывать, если не хотите. Использование дополнительного шифрования имеет только один минус — необходимость вводить пароль, и несколько преимуществ:
- Пароль никогда не попадет в сеть, он используется только на локальной машине для расшифровки ключа. Это значит что перебор по паролю больше невозможен.
- Секретный ключ хранится в закрытом каталоге и у клиента ssh нет к нему доступа пока вы не введете пароль;
- Если злоумышленник хочет взломать аутентификацию по ключу SSH, ему понадобится доступ к вашей системе. И даже тогда ключевая фраза может стать серьезной помехой на его пути.
Но все же, это необязательное дополнение и если не хотите, то вы можете просто нажать Enter. Тогда доступ по ключу ssh будет выполняться автоматически и вам не нужно будет что-либо вводить.
Теперь у вас есть открытый и закрытый ключи SSH и вы можете использовать их для проверки подлинности. Дальше нам осталось разместить открытый ключ на удаленном сервере.
Загрузка ключа на сервер
Когда генерация ключей завершена, нам осталось только загрузить ключ на сервер. Для загрузки ключа можно использовать несколько способов. В некоторых случаях вы можете указать ключ в панели управления сервером, например, сPanel или любой другой. Но мы такой способ рассматривать не будем. Мы рассмотрим ручные способы.
Самый простой способ скопировать ключ на удаленный сервер — это использовать утилиту ssh-copy-id. Она тоже входит в пакет программ OpenSSH. Но для работы этого метода вам нужно иметь пароль доступа к серверу по SSH. Синтаксис команды:
При первом подключении к серверу система может его не распознать, поэтому вам нужно ввести yes. Затем введите ваш пароль пользователя на удаленном сервере. Утилита подключится к удаленному серверу, а затем использует содержимое ключа id.rsa.pub для загрузки его на сервер в файл
/.ssh/authorized_keys. Дальше вы можете выполнять аутентификацию с помощью этого ключа.
Если такой способ по какой-либо причине для вас не работает, вы можете скопировать ключ по ssh вручную. Мы создадим каталог
/.ssh, а затем поместим наш ключ в файл authorized_keys с помощью символа >>, это позволит не перезаписывать существующие ключи:
/.ssh/id_rsa.pub | ssh username@remote_host «mkdir -p
Здесь вам тоже нужно набрать yes, если вы подключаетесь к новому серверу, а затем ввести пароль. Теперь вы можете использовать созданный ключ для аутентификации на сервере:
Если вы не захотели создать ssh ключ с доступом по паролю, то вы сразу же будете авторизованы, что очень удобно. Иначе, сначала вам придется ввести фразу-пароль для расшифровки ключа.
Отключение проверки пароля
Если пароль больше не будет использоваться, то для увеличения безопасности системы лучше его вовсе отключить. Но убедитесь, что ключ надежно сохранен и вы его не потеряете, потому что по паролю вы больше не войдете. Авторизуйтесь на сервере, затем откройте конфигурационный файл /etc/ssh/sshd_config и найдите там директиву PasswordAuthenticatin. Нужно установить ее значение в No:
sudo vi /etc/ssh/sshd_config
Теперь сохраните файл и перезапустите службу ssh:
sudo service ssh restart
Дальше будет возможно только подключение по ключу ssh, пароль не будет приниматься.
Выводы
В этой статье мы рассмотрели как выполняется авторизация по ключу ssh, настройка ключей ssh и добавить ssh ключ. Теперь вы можете войти на сервер без ввода пароля. Если у вас остались вопросы, спрашивайте в комментариях!
Источник