Введение
Недавно я арендовал небольшой сервер под 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.
Всем добра!