Я пытаюсь создать туннель напрямую с помощью команды ssh. Мой сценарий хорошо работает, когда я выполняю следующую конфигурацию
хоста: проход: ** Раздел туннеля в Putty: 6001: HostXX: 22 Откройте этот сеанс сейчас
войдите в систему с 127.0.0.1 портом 6001 и именем пользователя / паролем для HOSTXX Туннельная секция в Putty: 20333: DBHOST: 54666
Этот во k хорошо, когда я начинаю сеанс шпатлевки индивидуально для обоих сеансов.
Я пытаюсь найти решение, в котором я мог бы выполнять это туннелирование напрямую, используя одну команду ssh.
Я пробовал подписаться, но у меня ничего не вышло.
ssh -f HostA -l username -L 6001:10.54.172.68:22 \ ssh -p 6001 -N 127.0.0.1 -l username1 -i username1.pem -L 20333:dbhost:54666
ssh -fN HostA -l username -L 6001:10.54.172.68:22 \ ssh -fN -p 6001 -N 127.0.0.1 -l username1 -i username1.pem -L 20333:dbhost:54666
Я также пытался из cmd запускать эти команды по отдельности, но мне это не помогало. Пожалуйста, предложите любое решение
Туннелирование лучше работает в качестве прокси. Все, что вам нужно сделать для создания туннеля для ssh к серверам на другой стороне туннеля, это:
Create tunnel:
ssh -qCfND <PORT> username@tunnelserver
Где
- любой порт, который вы хотите назначить. 6001 будет работать нормально. Переключатели: -q
для тихого режима. C
для сжатия. f
для перехода ssh в фоновый режим. N
для простого проброса порта. D
для привязки порта.
Затем для ssh к любому серверу на другой стороне:
ssh -o "StrictHostKeyChecking no" -o ProxyCommand='nc -X 5 -x 127.0.0.1:6001 %h %p' username@remoteserver
Надеюсь, это поможет!