SSH-доступ по ключу (FreeBSD)

 
key2
 

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

Что это означает?

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

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

Есть два способа как это сделать

  • Сгенерировать публичный и приватный ключи на удаленном сервере (FreeBSD), далее перекидываем приватный ключ к себе на Windows машину. (спуститься к данному разделу)
  • Сгенерировать публичный и приватный ключи на вашей Windows машине. далее перекидываем публичный ключ на удаленный FreeBSD сервер. (спуститься к данному разделу)

 


 

 

Генерируем ключи на FreeBSD, далее, переносим приватный на Windows машину

 

В FreeBSD есть программа для генерации публичного и приватного ключа – ssh-keygen.

Для генерации достаточно написать следующие:

 

Далее, соглашаемся со всеми вопросами, жмем Enter. В результате, в директории /root/.ssh будет создано два ключа:

  • id_dsa.pub – публичный ключ
  • id_dsa — приватный ключ.

 

Для того, чтобы включить авторизацию по ключам, надо переименовать ключ id_dsa.pub в authorized_keys.

 

И немного подправить конфигурационный файл деймона sshd —  /etc/ssh/sshd_config. Надо раскоментировать строку «PermitRootLogin  no» и заменить «no» на «without-password«, т.е. должно стать

 

Теперь нам нужно перекинуть приватный ключ id_dsa к себе на windows машину.

Сделать это можно несколькими способами:

  • если сервер находится рядом с вами, то перенести файл id_dsa можно с помощью флешки (как это сделать?).
  • если сервер удален, то запустить FTP сервер на FreeBSD (как это сделать?), зайти на него с помощью вашего компьютера и скачать файл id_dsa
  • если сервер удален, то поднять FTP сервер на вашей Windows машине, зайти на этот сервер с FreeBSD и закачать туда файл id_dsa (ваш компьютер с Windows должен иметь «выделенный» или чистый ip адрес, иначе сервер с FreeBSD просто не увидит ваш ftp сервер).

 

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

Переходим в директорию /root/.ssh и соединяемся с FTP сервером

 

Где ip_адрес это адрес вашей Windows машины

Если соединения прошло, вас попросят ввести логин и пароль, вводим и нажимаем Enter

 

ftp_freebsd

P.S. в моем случае FTP сервер располагается в локальной сети по адресу 192.168.1.1.

 

Если логин и пароль верны, вы увидите «ftp>»

Закачаем туда файл id_dsa и выйдем из консольного клиента:

Теперь на Windows машине есть наш приватный ключ. Для использования приватного ключа в PuTTY, его необходимо перевести в «putty-вский формат», для этого скачиваем программу PuTTYgen (ссылка)

 

Запускаем PuTTYgen, нажимаем file -> Load private key
 
PuTTYgen_load_private_key

 

Выбираем id_dsa , далее нажимаем «Save private key»

 

PuTTYgen_save_private_key

 

Сохраняем в удобное для нас место.

Теперь, для использования данного ключа в PuTTY, нужно зайти в Connection -> SSH -> Auth

 

PuTTY_private_key

 

Жмем «Browse», выбираем приватный ключ, далее сохраняемся — нажимаем «Save».

Теперь авторизация у вас происходит по ключу.

 

 


 

Генерируем ключи на Windows, далее, переносим приватный на FreeBSD машину

 

Для того что бы создать пару ключей (публичный и приватный) нужна программа «PuTTYgen» (ссылка)

Выбираем тип ключей (по умолчанию SSH-2 RSA) и нажимаем «Generate«:

 

PuTTYgen_generate_keys

 

Начнется процесс генерации ключей

 

PuTTYgen_generate_process

 

Чем чаще водим курсором, тем быстрее генерируются ключи.

 

Жмем “Save public key” и сохраняем публичный ключ (т.е. для сервера) с именем authorized_keys, далее жмем “Save private key” и сохраняем приватный (для PuTTY) с любым именем, например «мой_приватный_ключ.ppk».

 

Закрываем программу и заходим в командную строку FreeBSD, переходим в «/root» и создаем директорию «.ssh»

 

Копируем публичный ключ «authorized_keys» с вашего компьютера на сервер.

Cделать это можно несколькими способами:

  • Если сервер находится рядом с вами, то перенести файл «authorized_keys» можно с помощью флешки (как это сделать?).
  • Если сервер удален, запустить FTP сервер на FreeBSD (как это сделать?), зайти на него с помощью вашего Windows компьютера и загрузить в него файл «authorized_keys»
  • Если сервер удален, поднять FTP сервер на вашей Windows машине и скачать файл «authorized_keys» на FreeBSD  (ваш компьютер с Windows должен иметь «выделенный» или чистый ip адрес, иначе сервер с FreeBSD просто не увидит ваш FTP сервер).

 

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

 

Переходим в директорию /root/.ssh и соединяемся с FTP сервером

 

Где ip_адрес это адрес вашей Windows машины

 

Если соединения прошло, вас попросят ввести логин и пароль, вводим и нажимаем Enter

 

ftp_freebsd

P.S. в моем случае FTP сервер располагается в локальной сети по адресу 192.168.1.1.

Если логин и пароль верны, вы увидите «ftp>»

Скачаем файл «authorized_keys» и выйдем из консольного клиента:

 

Теперь в директории «.ssh», лежит файл «authorized_keys».

По-умолчанию, доступ к root по ssh запрещен. Нам нужно разрешить доступ к root только по публичному ключу, для этого необходимо в «/etc/ssh/sshd_config», раскоментировать строку “PermitRootLogin  no” и заменить “no” на ”without-password“, т.е. должно стать

 

Есть одна особенность, «PuTTYgen» генерирует публичный ключ в своём формате, не совместимым для FreeBSD. Для конвертации, сделаем следующее:

 

Теперь, для использования приватного ключа в PuTTY, нужно зайти в Connection -> SSH -> Auth

 

PuTTY_private_key

 

 

Жмем «Browse», выбираем приватный ключ, далее сохраняемся – нажимаем «Save».

Теперь авторизация у вас происходит по ключу.




Буду признателен если вы поделитесь данным постом


Ваш комментарий


Ответ в цифрах

 
© s-engineer.ru, 2012-2017 | Все права защищены