如何让 sshpass 进程保持在后台?

如何让 sshpass 进程保持在后台?

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'

相关内容