Эквивалентная конфигурация PuTTY для OpenSSH ProxyCommand (два разных файла.pem/ppk)
(Смежный вопрос: конфигурация PuTTY эквивалентна OpenSSH ProxyCommand, но она предназначена для одного файла ppk/pem... моя проблема немного другая.)
Я пытаюсь использовать PuTTY, чтобы получить SSH-соединение с моими серверами. Эти серверы разрешают входящее SSH-соединение только с бастионного сервера (другого конкретного сервера).
В Linux это не проблема с командой ssh ... Я добился этого в Linux, как это... (~/.ssh/config)
HOST myprod-bastion
IdentityFile ~/.ssh/pemfile/myprod-bastion.pem
User bastion-user
Hostname X.X.X.X
HOST mywebserver
IdentityFile ~/.ssh/pemfile/myweserver.pem
User produser
Hostname 192.168.Y.Y
ProxyCommand ssh myprod-bastion -W %h:%p
Из моего терминала мне просто нужно выполнить следующую команду:
ssh mywebserver
Кто-нибудь знает, как использовать такой конфиг в PuTTY? Цените вашу помощь заранее.:)
2 ответа
Я не уверен, если вам все еще нужно это ответили. Но поскольку я натолкнулся на этот вопрос, задав тот же вопрос, я поделюсь своим решением.
Этот сайт дал мне основу для подхода: (предупреждающая ссылка может быть сломана) https://www.math.ucla.edu/computing/kb/creating-ssh-proxy-tunnel-putty
Мне пришлось создать две связи с PuTTY; Один для бастиона, другой для другого (mywebserver).
Создайте соединение с хостом Bastion, указав имя хоста, порт и другую необходимую информацию в зависимости от настроек.
Тогда под Connection > SSH > Tunnels
добавить переадресованный порт. Установите порт источника (например: 31415
) и запишите это значение. Установите тип Dynamic
и уходи Auto
выбран.
Установка PuTTY для переадресованного порта
Обязательно сохраните это как конфигурацию.
Затем введите учетные данные, чтобы установить соединение с другим полем (mywebserver). Дополнительный шаг, который вам нужно сделать, это подключить его к первой конфигурации через прокси.
Под Connection > Proxy
выберите тип прокси SOCKS 5
установите имя прокси-хоста как localhost и установите порт таким же, как созданный на предыдущем шаге (в этом примере: 31415
). Остальные настройки можно оставить без изменений.
Теперь все, что вам нужно, это установить первое соединение с хостом Bastion, а затем запустить соединение с другим блоком (mywebserver).
У меня была точно такая же проблема, которую вы описали, и решила ее следующим образом (на основе ( ответа Мартина Прикрыла в теме, на которую вы также ссылались)(см. Руководство пользователя PuTTY для получения подробной информации о PuTTYgen, Pageant или plink, которые требуются для это решение. Все инструменты поставляются вместе с PuTTY.)
Преобразование обоих ключей с помощью PuTTYgen в формат файла PuTTY .ppk. Для этого нужно загрузить файл .pem в PuTTYgen и сохранить закрытый ключ.
Запустите Pageant и добавьте закрытый ключ .ppk для bastion-user@myprod-bastion.
Настройте параметры сеанса в графическом интерфейсе PuTTY.
Во вкладках- Сессия: введите HostName 192.168.YY и (необязательно) Port
- Подключение> Данные: введите имя пользователя для входа в систему.
- Соединение> SSH> Auth: импортируйте файл секретного ключа вашего производителя @mywebserver(.ppk)
(вместо этого вы также можете импортировать этот ключ в Pageant, если хотите.) - Connection> Proxy: настройте (вроде) JumpProxy (myprod-bastion), как описано ниже.
- Не забудьте сохранить свою конфигурацию как mywebserver
Настроить JumpProxy (myprod-bastion)
как показано на снимке экрана:
В вашем случае вы можете оставить поля «Имя хоста прокси», «Порт» и «Имя пользователя» пустыми, и вам не нужен пароль, поскольку вы предоставляете закрытый ключ. Полная команда в поле «команда локального прокси»:
plink -ssh bastion-user@X.X.X.X -P YYY -batch -agent -nc %host:%port
Объяснение параметров:
- "-ssh" определяет протокол (я предполагаю, что это необязательно)
- " bastion-user@XXXX -P YYY" данные вашего подключения (порт не нужен в вашем случае)
(вы также можете использовать здесь переменные PuTTY% proxyhost и% proxyport, если вы заполнили соответствующие поля выше, но я не знаю имя переменной для прокси-пользователя.) - "-batch" запрещает пользователю любые запросы или ввод
- «-agent» извлекает закрытый ключ из Pageant, который вы запускаете перед установкой соединения с mywebserver. ("-i keyfile.ppk" тоже должен работать, но я не хотел путаться с путем ...)
- "-nc%host:% port" аналогично ssh "-W host: port"
Переменные ссылаются на соответствующие значения mywebserver на вкладке "Сеанс".
Вы можете начать сеанс из командной строки, очень похожей на * nix, с помощью
plink mywebserver