基本上与以下问题相同即使设置了 ServerAliveInterval 60,ssh 仍然挂起,除非我检查配置是否正在使用:
$ man 5 ssh_config | grep -A1 '^\s*ServerAliveInterval'
Sets a timeout interval in seconds after which if no data has been received from the server, ssh(1) will send a message through the encrypted channel to request a response from the server.
$ cat ~/.ssh/config
host myalias
hostname example.org
ServerAliveInterval 200
$ ssh myalias 'echo "Greetings from $USER@$(hostname)"'
Greetings from [email protected]
使用 运行 ssh -vvv
,连接空闲时什么都没有显示。也许数据包没有被记录,尽管这是(根据手册页)可用的最高调试级别。查看 Wireshark,没有任何数据包通过连接发送。我在输入或服务器发送数据时看到数据包,但在 45 分钟的空闲 shell 期间,没有数据包显示。
使用 时ssh -o ServerAliveInterval=60
,数据包确实会显示出来,但每次输入它有点麻烦。也许 bash 别名会起作用,但是... ssh 应该只读取配置。
SSH 客户端版本:OpenSSH_9.2p1 Debian-2