我有一个小树莓派正在玩。我让它无头运行,当满足某些条件时,我需要使它的一个端口转发到远程服务器。
但是,我不希望连接无限期地停留,直到服务器关闭它。 有没有办法在一段时间后关闭 SSH 连接(从客户端,我没有根到服务器)? 理想情况下,我会直接通过 ssh 命令执行此操作,但我是在 Python 3 中编写的,所以如果有办法在 Python 中执行此操作,那么我会全力以赴。
我有一个小树莓派正在玩。我让它无头运行,当满足某些条件时,我需要使它的一个端口转发到远程服务器。
但是,我不希望连接无限期地停留,直到服务器关闭它。 有没有办法在一段时间后关闭 SSH 连接(从客户端,我没有根到服务器)? 理想情况下,我会直接通过 ssh 命令执行此操作,但我是在 Python 3 中编写的,所以如果有办法在 Python 中执行此操作,那么我会全力以赴。
在您的 /etc/ssh/sshd_config 中:
ClientAliveInterval <time interval in seconds>
ClientAliveCountMax 0
因此,在第一个指令中使用 300 将在空闲 5 分钟后终止连接。您需要重新启动 sshd 才能使其生效。
除非您ssh
使用“-N”选项运行,否则它通常会在远程系统(本例中为 Pi)上启动某种命令或 shell。此远程命令退出时 SSH 断开连接。
如果您运行 ssh 只是为了创建一些端口转发,您可能使用“-N”运行,或者您可能让 ssh 会话位于命令提示符下。相反,您可以在 Pi 上启动一个命令,该命令在所需时间后退出。您可以使用该sleep
命令,例如:
ssh -Lwhatever -Rwhatever user@pi "sleep 3600"
尝试 ssh -o ServerAliveInterval=10 server.org