Как стать автором
Обновить

Подключение PuTTy по SSH-ключу в один клик

Введение

Недавно я арендовал небольшой сервер под Ubuntu для того, чтобы потренироваться разворачивать на нем свои поделки на Java (небольшие веб-приложения). Я специально не стал пользоваться готовыми решениями, а решил научиться самостоятельно настраивать окружение на удаленном linux сервере.

Для подключения к серверу я использовал многим известную программу PuTTy. И мне было жутко неудобно запускать её и загружать сохраненную настройку. Я задался вопросом запуска в один клик. Скажу сразу, я не сильно искушенный человек в такого рода вопросах и большую часть жизни необходимости использования данного инструмента не было. В связи с чем, возможно, я не начал поиск там, где надо, и в итоге не нашел готового решения и изобрел велосипед. Надеюсь, другим людям с подобным вопросом поможет этот пост.

Гугл в помощь

Поспрашивав у коллег на работе, никто мне не смог ничего дельного подсказать, кроме "гугл в помощь". Но, видимо, гуглил я как-то не так и всё, что я находил - это решения типа:

putty.exe -ssh usrname@hostname

Но нигде не было описано как подключиться к серверу по ssh ключу и сразу залогиниться в систему. Были примеры использования plink, но это не то, что я искал. В процессе моих исследований, я выяснил что в арсенале PuTTy есть еще один инструмент, с помощью которого можно запустить подключение. И называется он pageant. Немного разобравшись в способах его использования я сваял себе простой батничек. Можно обойтись одной строкой, но для наглядности я написал файл с переменными и комментариями.

@echo off
cls
set PuttyExe=C:\Путь\к\файлу\putty.exe
set usrname=логин-в-линух
rem Имя хоста
set host=hostname
rem Путь к приватному ключу (Можно не указывать, если батник в папке с ключом)
rem со знаком "\" в конце, чтобы не склеить папку и имя файла
set keypath=C:\Путь\к\приватному\ключу\
rem Имя файла ключа
set keyname=приватный-ключ.ppk
echo Connecting to server...
pageant "%keypath%%keyname%" -c "%PuttyExe%" -ssh %usrname%@%host%

В результате выполнения этого скрипта запустится pageant и запросит у Вас фразу для расшифровки приватного ключа. После чего он запустит PuTTy и начнет подключнение к серверу, а также запомнит ввод парольной фразы. Пока pageant будет запущен, Вы сможете подключаться без повторного ввода парольной фразы. При подключении, в окне консоли PuTTy вы увидите что-то вроде примера с картинки.

Автоматический вход под заданным пользователем
Автоматический вход под заданным пользователем

Т.к. я использовал не портативную PuTTy, а установочный дистрибутив, то у меня вместо пути к PuTTy можно использовать обычный консольный вызов putty:

pageant "%keypath%%keyname%" -c putty -ssh %usrname%@%host%

Заключение

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

Всем добра!

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.