Bau*_*iao 95 ssh ssh-tunneling
我必须在两台主机之间建立一个隧道。
为此,我ssh以这种方式使用:
ssh -L MY_LOCAL_PORT:FOREIGN_ADDRESS:FOREIGN_PORT MYUSER@SSH_SERVER
Run Code Online (Sandbox Code Playgroud)
之后,我登录到我的 SSH_SERVER。
我怎样才能避免这个功能?!我只需要建立一个隧道。我不必登录到我的 SSH_SERVER...
我试过 -N 选项,但它让我的 shell 很忙。
Adr*_* M. 105
如其他帖子所述,如果您不想在远程主机上出现提示,则必须使用-NSSH 选项。但这只是在没有提示的情况下保持 SSH 运行,并且 shell 很忙。
您只需要将 SSH'ing 作为带有&符号的后台任务:
ssh -N -L 8080:ww.xx.yy.zz:80 user@server &
Run Code Online (Sandbox Code Playgroud)
这将在后台启动 ssh 隧道。但是可能会出现一些消息,尤其是当您尝试连接到非侦听端口时(如果您的服务器 apache 未启动)。为了避免这些消息在你做其他事情时在你的 shell 中产生,你可以将 STDOUT/STDERR 重定向到 big void :
ssh -N -L 8080:ww.xx.yy.zz:80 user@server >/dev/null 2>&1 &
Run Code Online (Sandbox Code Playgroud)
玩得开心 SSH。
neu*_*242 79
-f -N 是你要找的:
ssh -f -N -L MY_LOCAL_PORT:FOREIGN_ADDRESS:FOREIGN_PORT MYUSER@SSH_SERVER
Run Code Online (Sandbox Code Playgroud)
从ssh手册页:
-f在命令执行之前请求 ssh 进入后台。如果 ssh 将要求输入密码或密码短语,但用户希望在后台使用,这将很有用。这意味着-n。
-N不执行远程命令。这对于仅转发端口很有用(仅限协议版本 2)。
-n重定向标准输入
/dev/null(实际上,阻止从标准输入读取)。这必须ssh在后台运行时使用。