Я должен установить туннель между двумя хостами.
Для этого я использую ssh
таким образом:
ssh -L MY_LOCAL_PORT:FOREIGN_ADDRESS:FOREIGN_PORT MYUSER@SSH_SERVER
после этого я захожу в свой SSH_SERVER.
Как я могу избежать этой функции ?! Я должен только настроить туннель. Мне не нужно входить в мой SSH_SERVER ...
Я пробовал опцию -N, но это заставляло мою оболочку работать.
ssh
ssh-tunneling
Бау Мяо
источник
источник
man ssh
показано, как:ssh -f -L 1234:localhost:6667 server.example.com sleep 10 && irc -c '#users' -p 1234 pinky 127.0.0.1
Опция -f background ssh и удаленная команда `` sleep 10 '' задаются, чтобы дать время (10 секунд, в примере) для запуска службы, которая должна быть туннелирована. Если в течение указанного времени соединения не установлены, ssh завершит работу. `` `Ответы:
Как сказано в других сообщениях, если вы не хотите получать подсказки на удаленном хосте, вы должны использовать
-N
опцию SSH. Но это только позволяет SSH работать без приглашения, а оболочка занята.Вам просто нужно поставить SSH в качестве фоновой задачи со
&
знаком:Это запустит SSH туннелирование в фоновом режиме. Но могут появиться некоторые сообщения, особенно когда вы пытаетесь подключиться к не слушающему порту (если ваш сервер apache не запущен). Чтобы эти сообщения не появлялись в вашей оболочке при выполнении других действий, вы можете перенаправить STDOUT / STDERR в большую пустоту:
Веселитесь с SSH.
источник
-f
вместо&
перенаправления и io.-f -N
это то, что вы ищете:источник
ps
иkill
этоssh -N -f -M -S /tmp/file-sock -L port:server:port_to user@...
чтобы потом можно было уничтожить соединениеssh -S /tmp/file -o exit user@....
(или убить). Таким образом, не нужно PS. Вы можете автоматически создать этот файл в ~ / .ssh / config.ssh -S /tmp/file-sock -O exit
, не-o
en.wikibooks.org/wiki/OpenSSH/Cookbook/…