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

Заметка опирается на предыдущую, где подробно расписал как настроить авторизацию на основе публичного ключа.Все ниже проводимые действия применимы для всех линеек Windows, но я буду здесь рассматривать работу на Windows 7, поехали. Авторизация на основе ключей хороша, тем когда администрируемых серверов становится слишком много и помнить пароль от каждого уже очень порой утомительно, потому волей не волей заводишь свой персонализированный файл с паролями, а это большая ответственность. Не брежное отношение к нему и все ваши пароли утекут к кому-то другому. Поэтом выходом я считаю — использовать ключи. Но и их следует защищать, к примеру паролем на приватный ключ, но тогда будет запрос при подключении к серверу, а уже после подключение. Вот тут то и может быть использован единый сложный пароль на авторизацию. Если же есть подозрение, что доступ к приватному ключу получен у кого другого, то можно в разы быстрее удалить публичный ключ с сервера, но это когда все сервера подключены к единому центру управления. Чуть позже я покажу все это на пошаговом примере.

Скачиваем клиент putty в систему с официального сайта (ссылку не привожу, google знает все)

Скачиваем утилиту puttygen с официального сайта (ссылку не привожу, google знает все)

Запускаем puttygen: – нажимаем Generate чтобы сгенерировать публичный и секретный ключ (чтобы генерирование прошло быстрее водим, нажимаем, резко двигаем мышью)

Генерируем ключи SSH (публичный и приватный)

через некоторое время результа генерации публичного ключа и приватного ключа завершится

Публичный ключ сгенерирован

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

ekzorchik@srv-serv:~$ nano .ssh/authorized_keys

  • Первый ключ это из клиентской станции srv-client
  • Второй ключ это посредством генерирования через утилиту puttygen и копирования сюда

Копируем публичный ключ с Windows системы на сервер

Не забываем сохранить внесенные изменения.

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

ekzorchik@srv-serv:~$ sudo apt-get install smbfs -y

ekzorchik@srv-serv:~$ sudo smbmount //192.168.1.41/c$ /media/smb -o username=ekzorchik,<мой_пароль_к_windows_станции>

либо

ekzorchik@srv-serv:~$ sudo mount -t cifs //192.168.1.41/c$ /media/smb -o username=ekzorchik,<мой_пароль_к_windows_станции>

ekzorchik@srv-serv:~$ cat /media/smb/ssh/id_rsa.pub >> .ssh/authorized_keys

ekzorchik@srv-serv:~$ sudo umount /media/smb

Теперь, надеюсь Вы еще не закрыли окно puttygen сохраняем приватный ключ ключ к примеру в каталог c:\ssh\ и именуем его к примеру, как id_rsa_private, в процессе сохранения приватного ключа мастер рекомендует обезопасить использование данного ключа паролем, я пропускаю данный шаг.

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

Сохраняем приватный ключ  в систему

Далее запускаем клиент Putty и приводим настройки подключения к следующему виду:

Session:

Host Name (or IP address) = 192.168.1.42

Port = 22

Connection – SSH – Auth

и через нажатие кнопки Browse… указываем месторасположение сохраненного приватного ключа.

c:\ssh\id_rsa_private.ppk

Указываем путь до месторасположения приватного ключа

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

Sessionи указываем название данной сессии и нажимаем Saveа после кнопку Open для открытия сессии подключения к серверу.

Сохраняем параметры сессии для подключения к серверу

, но прозрачно почему то не происходит на экране ожидается, что я укажу логин подключения к системе:

login as:

если ввести именование учетной записиekzorchik то авторизация на основе публичного ключа происходит:

login as: ekzorchik

Authenticating with public key “rsa-key-20141123”

Welcome to Ubuntu 12.04.5 LTS (GNU/Linux 3.2.0-23-generic x86_64)

* Documentation: https://help.ubuntu.com/

System information as of Tue Nov 18 00:56:39 MSK 2014

System load: 0.01 Processes: 76

Usage of /: 8.7% of 16.70GB Users logged in: 1

Memory usage: 2% IP address for eth1: 192.168.1.42

Swap usage: 0%

Graph this data and manage this system at:

https://landscape.canonical.com/

Last login: Tue Nov 18 00:54:56 2014 from 192.168.1.41

, но такое положение дел меня не устраивает, поэтому просто отредактирую настройки профиля подключения клиента putty.

Puttyвыбаю профиль под которым я сохранил настройки подключения после нажимаю Load

  • Connection – Data
  • Auto-login username = ввожу ekzorchik

После возвращаюсь в меню Session и сохраняю внесенные изменения в профиль соединения. Затем запускаю подключение (OPEN)

Using username “ekzorchik“. – логин подставился автоматически

Authenticating with public key “rsa-key-20141123”

Welcome to Ubuntu 12.04.5 LTS (GNU/Linux 3.2.0-23-generic x86_64)

* Documentation: https://help.ubuntu.com/

System information as of Tue Nov 18 01:01:37 MSK 2014

System load: 0.03 Processes: 76

Usage of /: 8.7% of 16.70GB Users logged in: 1

Memory usage: 2% IP address for eth1: 192.168.1.42

Swap usage: 0%

Graph this data and manage this system at:

https://landscape.canonical.com/

Last login: Tue Nov 18 00:56:40 2014 from 192.168.1.41

Я в системе, авторизация прошла успешно, что мне и требовалось. Но что если уж очень хочется все таки обезопасить подключение к администрируемым системам, то на помощь придет еще один рубеж защиты — это указание пароля при использовании приватного ключа при подключении к системам. Создадим его:

Запускаем утилиту puttygen

Загружаем в нее сохраненные ранее приватный ключ и предопределяем пароль на использование приватного ключа:

Key passphrase: 712mbddr@

Confirm passphrase: 712mbddr@

Предопределяем пароль на использование приватного ключа

И после следует обязательно сохранить в ту же директорию приватный ключ посредством которого проиcходит подключение к удаленным системам находящимися на обслуживании — Save private keyсогласиться на перезапись. Теперь запускаем клиент putty, загружаем профиль соединения и нажимаем Open

Using username “ekzorchik”.

Authenticating with public key “rsa-key-20141123”

Passphrase for key “rsa-key-20141123”: <указываем пароль на использование приватного ключа, в моем случае это 712mbddr@”

Welcome to Ubuntu 12.04.5 LTS (GNU/Linux 3.2.0-23-generic x86_64)

* Documentation: https://help.ubuntu.com/

System information as of Tue Nov 18 01:30:51 MSK 2014

System load: 0.0 Processes: 76

Usage of /: 8.9% of 16.70GB Users logged in: 1

Memory usage: 3% IP address for eth1: 192.168.1.42

Swap usage: 0%

Graph this data and manage this system at:

https://landscape.canonical.com/

Last login: Tue Nov 18 01:16:29 2014 from 192.168.1.43

Как видно из данных выше подключение прошло. Работает.

На заметку: каталог где распологается приватный ключ должен быть защищен по самое максимум, это может быть к примеру контейнер на основе BitLocker или любое другое защищенное место лишь бы никто посторонний не смог его скопировать, хотя наличие защиты как паролем все же вносит на нет все попытки получения неавторизованного доступа к удаленным системам. Заметка работоспособна. Надеюсь данный материал будет читателям моего блога полезен. На этом буду прощаться, с уважением — автор блога ekzorchik.

От ekzorchik

Всем хорошего дня, меня зовут Александр. Я под ником - ekzorchik, являюсь автором всех написанных, разобранных заметок. Большинство вещей с которыми мне приходиться разбираться, как на работе, так и дома выложены на моем блоге в виде пошаговых инструкции. По сути блог - это шпаргалка онлайн. Каждая новая работа где мне случалось работать вносила новые знания и нюансы работы и соответственно я расписываю как сделать/решить ту или иную задачу. Это очень помогает. Когда сам разбираешь задачу, стараешься ее приподнести в виде структурированной заметки чтобы было все наглядно и просто, то процесс усвоения идет в гору. Также прошу на https://win.ekzorchik.ru https://lin.ekzorchik.ru https://net.ekzorchik.ru https://voip.ekzorchik.ru https;//home.ekzorchik.ru