sshpass -p '1234567*' ssh -L 1080:192.168.0.1:2222 [email protected] -p 4422 -f -C -N
上面的代码适用于 macOS(通过 gateway.com:4422 使用用户名 admin 和密码 1234567* 创建到 192.168.0.1:2222 的 1080 隧道)。\
它在 Linux 上不起作用 - 该进程似乎立即运行并终止。
答案1
sshpass
+的问题ssh
在于,它ssh
首先对用户进行身份验证,分叉一个子进程来处理连接,然后退出。但是sshpass
,一旦父ssh
进程退出,在子进程有机会从终端(由 创建的伪tty)分离之前,它将立即从子进程下面拉起地毯sshpass
,因此它将被信号杀死SIGHUP
。
因此这会起作用:
sshpass -p '1234567*' sh -c 'ssh -L 1080:192.168.0.1:2222 [email protected] -p 4422 -f -C -N && sleep .1'