Назад | Перейти на главную страницу

Как настроить SSH-туннель с помощью PuTTY или SecureCRT через шлюз / прокси на сервер разработки?

У нас есть некоторые настройки unix-боксов таким образом, что для доступа к блоку разработки через ssh вы должны сначала ввести ssh в поле «user @ jumpoff». Прямое соединение с dev по ssh из любого места, кроме jumpoff, запрещено. Кроме того, на обоих серверах разрешен только обмен ключами. И вы всегда входите в окно разработки как «build @ dev».

Всегда больно прыгать. Я знаю, что это можно сделать с помощью SOCKS, или туннеля, или чего-то еще ...

Я установил виртуальную машину FreeBSD и могу заставить все работать отлично, используя инструменты unix ssh. По сути, все, что я делаю, это удостоверяюсь, что мой ключ vm ~ / .ssh / id_rsa.pub находится как на jumpoff, так и на dev, и использую этот файл ~ / .ssh / config:

# Development Server
Host            ext-dev  # this must be a resolvable name for "dev" from Jumpoff
Hostname        1.2.3.4
User            build
IdentityFile    ~/.ssh/id_rsa  

# The Jumpoff Server
Host            ext 
Hostname        1.1.1.1
User            daevid
Port            22 
IdentityFile    ~/.ssh/id_rsa

# This must come below all of the above 
Host            ext-* 
ProxyCommand    ssh ext nc $(echo '%h'|cut -d- -f2-) 22 

Затем я просто набираю «ssh ext-dev» и оказываюсь как Флинн.

Проблема в том, что я не могу заставить то же самое работать, используя PuTTY или SecureCRT - и, честно говоря, я не нашел никаких руководств, которые действительно помогли бы мне это пройти. Я вижу, как многие настраивают какой-то прокси-туннель для Firefox, но, похоже, это не та же концепция. Я почти весь день возился с различными методами проб и ошибок, и ничего не сработало (очевидно), и я подошел к концу своих знаний ssh ​​и поиска в Google.

Я нашел эту ссылку, которая показалась мне идеальной, но она не работает для меня. «Мастер» подключается нормально, но «клиентская» часть не подключается. Он говорит мне, что удаленная система отказалась установить соединение. http://www.vandyke.com/support/tips/socksproxy.html

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

Есть ли у кого-нибудь простой пример того, как это сделать в Windows?

Используя довольно свежую версию SecureCRT (в этом примере я использую 7.3.7), вот как вы это делаете:

1.) Установите новое соединение с вашим промежуточным сервером (ext) с IP-адресом 1.1.1.1, как указано в вашем примере. Дайте соединению имя «Jump-off server» и сохраните его в папке Sessions.

2.) Проверьте, можете ли вы подключиться к промежуточному серверу по желанию. Вы указали, что доступ возможен только с помощью ключа SSH: вы можете импортировать этот ключ с помощью функции ssh-agent (используйте меню «Инструменты»> «Управление ключами агента ...»> «Добавить ...»), если вы хотите ввести кодовую фразу только один раз.

3.) Установите новое соединение для вашего блока разработчика. Как и в шаге 1.), используйте правильный IP-адрес - 1.2.3.4, как указано в вашем примере - и назовите его «Development box». Сохраните этот сеанс в папке «Сеансы». Проверьте это соединение: Это должен сбой в этот момент, потому что вы подключаетесь напрямую. Закройте окно.

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

4.) Щелкните правой кнопкой мыши соединение «Development box» в папке Sessions и выберите «Properties». Перейдите в «Подключение» -> «SSH2» и щелкните раскрывающийся вариант «Брандмауэр:». Щелкните «Выбрать сеанс ...», затем выберите «Сервер перехода» в меню «Сеансы», затем щелкните «ОК», чтобы принять значение, затем снова «ОК», чтобы выйти из меню свойств.

Теперь это связывает ваш блок перехода с блоком разработки, поэтому он используется в качестве посредника при попытке установить соединение с блоком разработки. Он работает даже в том случае, если у вас есть другой порт SSH, используемый на вашем промежуточном блоке (например, 65000) по сравнению с вашим блоком разработки (например, 22), потому что SecureCRT будет просто использовать конфигурацию, которую вы настроили для каждого хоста.

Попробуйте снова установить соединение «Коробка разработки», с открытым соединением «Прыжковая коробка» или без него, и вы обнаружите, что оно работает так, как вы хотели.

Кажется, что PuTTY версии 0.59 и новее поддерживает синтаксис, подобный ProxyCommand; см., например, это сообщение в блоге. Скорее всего, вы не захотите использовать НОСКИ. Вы должны быть осторожны с использованием надежных парольных фраз для ваших ключей; из вашего примера OpenSSH не ясно, есть ли у вас кодовая фраза на вашем ключе, или вы используете ssh-agent или тому подобное.

Используя PuTTY, убедитесь, что у вас включена «пересылка агента» и ваш закрытый ключ загружен в Pageant.

Для тех, кто хочет сделать это с помощью SecureCRT, вот он:

  1. Создайте сеанс SSH как обычно.

  2. В свойствах выберите «Переадресация портов» и нажмите «Добавить ...», обязательно отметьте «Динамическое перенаправление с использованием SOCKS 4 или 5», введите локальный адрес и порт соответственно.

  3. Готово. С этого момента каждый раз, когда вы ssh с этой конфигурацией сеанса, туннель создается автоматически, когда вы отключаетесь, туннель исчезает. Практически то же самое, что и в Linux.

Наслаждайтесь!