2015-04-02 4 views
0

Я пытаюсь написать очень простой скрипт bash, поэтому я могу сначала ssh на прокси-сервер, а затем с прокси-сервера ssh на целевой сервер. Вот как была создана сеть для доступа. У меня есть:Автоматизация соединения SSH через прокси-сервер

#! /bin/bash 
ssh proxyservername 
ssh destservername 

Какой из них не работает. Когда я подключен к proxyserver, вторая строка ssh не выполняется, мне все равно нужно вручную ввести команду. Есть ли некоторые команды, которые я могу добавить в скрипт, поэтому я могу подключиться к целевому серверу автоматически? (Я в порядке с запросом пароля.)

ответ

1

Я думаю, что наиболее распространенным решением в подобных ситуациях является использование флага -Rssh (отметьте man ssh). Вы также можете прочитать о -f и -o ExitOnForwardFailure=yes.

Узор я использую что-то вроде этого:

ssh -f -o ExitOnForwardFailure=yes -R localhost:2222:$TARGETNAME:22 $PROXYNAME sleep 1 && 
ssh -p 2222 localhost 

(где 2222 в основном любой порт можно использовать на локальном компьютере).

Флаг -R говорит ssh для подключения к $PROXYNAME, настроить туннель оттуда в порт 22 из $TARGETNAME и прикрепить другой конец к порту 2222 на вас локальной машине. Другие варианты сообщают ssh, чтобы перейти к фону и закрыть это соединение, когда оно больше не используется. Затем вы просто запускаете другой экземпляр ssh, который подключается к порту 2222 по адресу localhost.

0

Я думаю, что вам нужно что-то в строках ssh proxyservername 'ssh destservername', предполагая, что proxyservername имеет ssh, установил доступ к имени destservername.