Как создать туннель после ssh на удаленную машину, используя закрытый ключ, используя скрипт bash - PullRequest
1 голос
/ 30 мая 2019

У меня есть сервер, на котором я буду входить на сервер с локального компьютера и создавать туннель.

У меня есть скрипт bash, который не создает туннель

sshpass -p ${1} ssh ${2}@${3}
ssh -L <port1>:<host>:80 -i /home/<user>/private_key <user_ID>@<host2>

Результат, который я получаю -

sh ssh_to_box.sh pwd username remotehost
Welcome to Ubuntu 16.04.5 LTS (GNU/Linux 4.4.0-145-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

144 packages can be updated.
0 updates are security updates.

New release '18.04.2 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


*** System restart required ***
Last login: Thu May 30 09:36:36 2019 from remotehost
$ 

Скрипт не выполняет туннелирование. Также это должно сделать $ bash

Как выполнить ssh для удаленного доступа и создать туннель с этой удаленной машины и сохранить туннель живым?

Ответы [ 2 ]

1 голос
/ 30 мая 2019

Возможно, вы на самом деле создаете туннель, вы должны проверить, если

ss -lptn | awk '{ print $4 }' | awk -F ':' '{ print $2 }' | sed -e '/<port1>/!d'

Возвращает что-то, когда консоль ssh открыта, если true, у вас есть туннель. (Возможно, есть лучший способ сделать эту проверку, но я не очень хорошо знал awk)

Если вы хотите, чтобы туннель был постоянным, вы можете запустить его внутри tmux / screen или запустить nohup <tunnel_command> &

Важно отметить, что имя будет также разрешено удаленным хостом.

0 голосов
/ 03 июня 2019

Решена проблема - sshpass -p $ {1} ssh -t $ {2} @ $ {3} 'ssh -L' $ {4} ':' $ {5} ':' $ {6} '-i / home / _key '$ {2}' @ '$ {7}' '

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...