Эквивалентная конфигурация 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? Заранее оцените вашу помощь. :)


person Manan Shah    schedule 27.02.2018    source источник


Ответы (2)


Я не уверен, что вам все еще нужен этот ответ. Но так как я столкнулся с этим, задавая тот же вопрос, я поделюсь своим решением.

Этот сайт дал мне основу для подхода: (предупреждающая ссылка может быть неработающей) https://www.math.ucla.edu/computing/kb/creating-ssh-proxy-tunnel-putty

Мне пришлось создать два соединения с PuTTY; Один для Бастиона, а другой для другого бокса (mywebserver).

Создайте подключение к хосту-бастиону, указав имя хоста, порт и другую необходимую информацию в зависимости от вашей настройки.

Затем под Connection > SSH > Tunnels добавьте перенаправляемый порт. Установите исходный порт (например: 31415) и запишите это значение. Установите тип Dynamic и оставьте выбранным Auto.

Настройка PuTTY для переадресации порта

Обязательно сохраните это как конфигурацию.

Затем введите учетные данные для настройки подключения к другому ящику (mywebserver). Дополнительный шаг, который вам нужно сделать, — подключить его к первой конфигурации через прокси.

В разделе Connection > Proxy выберите тип прокси-сервера SOCKS 5, задайте имя узла прокси-сервера как localhost и задайте порт, который был создан на предыдущем шаге (в этом примере: 31415). Остальные настройки можно оставить прежними.

Настройка прокси-сервера PuTTY

Теперь все, что вам нужно, это запустить первое подключение к хосту Bastion, а затем запустить подключение к другому блоку (mywebserver).

person Bryce Pilcher    schedule 24.05.2019

У меня была точно такая же проблема, которую вы описываете, и я решил ее следующим образом (на основе (ответа Мартина Прикрылла в потоке вы также ссылались). (См. Руководство пользователя PuTTY. для получения подробной информации о PuTTYgen, Pageant или plink, которые необходимы для этого решения. Все инструменты поставляются вместе с PuTTY.)

  1. Преобразуйте оба ключа с помощью PuTTYgen в формат файла PuTTY .ppk. Для этого загрузите файл .pem в PuTTYgen и сохраните закрытый ключ.

  2. Запустите Pageant и добавьте закрытый ключ .ppk bastion-user@myprod-bastion.

  3. Настройте параметры сеанса в графическом интерфейсе PuTTY.
    Во вкладках

    • Session: enter HostName 192.168.Y.Y and (optionally) Port
    • Соединение › Данные: введите логин produser
    • Соединение › SSH › Аутентификация: импортируйте файл закрытого ключа вашего produser@mywebserver (.ppk)
      (вместо этого вы также можете импортировать этот ключ в Pageant, если хотите.)
    • Соединение › Прокси: настройте (вроде) JumpProxy (myprod-bastion), как описано ниже
    • Не забудьте сохранить вашу конфигурацию как mywebserver

Настройте JumpProxy (myprod-bastion)

как показано на снимке экрана:
Настройка прокси-сервера PuTTY

В вашем случае вы можете оставить поля Proxy Hostname, Port и Username пустыми, и вам не нужен пароль, так как вы предоставляете закрытый ключ. Полная команда в поле команды локального прокси:
plink -ssh [email protected] -P YYY -batch -agent -nc %host:%port
Объяснение параметров:

  • -ssh определяет протокол (я предполагаю, что это необязательно)
  • [email protected] -P YYY ваши данные подключения (порт в вашем случае не обязателен)
    (Вы также можете использовать здесь переменные PuTTY %proxyhost и %proxyport, если вы заполнили соответствующие поля выше, но я делаю не знаю имя переменной для прокси-пользователя.)
  • -batch запрещает любое приглашение или ввод пользователя
  • -agent получает закрытый ключ от Pageant, который вы запускаете до установления соединения с mywebserver. (-i keyfile.ppk тоже должен работать, но я не хотел возиться с путем...)
  • -nc %host:%port аналогично ssh -W host:port
    Переменные ссылаются на соответствующие значения mywebserver на вкладке Session.

Вы можете начать сеанс из командной строки, очень похожей на * nix, с помощью

plink mywebserver
person Sarge1060    schedule 10.06.2021