我在Linux上连接时使用:
gcloud compute --project "xxx" ssh --zone "europe-west-b" "yyy"
如果长时间没有操作约10分钟,我的控制台会冻结或出现错误255
。
我在Linux上连接时使用:
gcloud compute --project "xxx" ssh --zone "europe-west-b" "yyy"
如果长时间没有操作约10分钟,我的控制台会冻结或出现错误255
。
它因为KEEP_ALIVE而冻结。在Linux系统中,它不会自动启动。
您应该在Linux客户端或计算引擎实例中运行该命令:
sudo /sbin/sysctl -w net.ipv4.tcp_keepalive_time=60 net.ipv4.tcp_keepalive_intvl=60 net.ipv4.tcp_keepalive_probes=5
对于MAC OS客户端:
sudo sysctl -w net.inet.tcp.always_keepalive=1 net.inet.tcp.keepidle=60000 net.inet.tcp.keepinit=60000 net.inet.tcp.keepintvl=60000
对于 Windows 系统,路径为:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\
添加这些设置或更改其值为:
KeepAliveInterval: 1000
KeepAliveTime: 60000
TcpMaxDataRetransmissions: 10
之后,您的客户端控制台将能够保持更长的会话时间!!!
--ssh-flag="-ServerAliveInterval=30"
。请注意在ServerAliveInterval
前面有一个额外的连字符。否则它不会被传递给SSH作为标志,而是作为主机字符串。 - Intermernet/etc/ssh/sshd_config
文件并在我的Debian GNU/Linux的gcloud虚拟机实例中设置TCPKeepAlive yes
(当然之后要执行service ssh restart
),才能使它生效。 - Nuno Henriques--ssh-flag="-o ServerAliveInterval=5"
(OpenSSH_8.0p1)。您必须使用附加选项-o
标志,因为在 OpenSSH 中,-S
是一个完全不相关的标志,当将其设置为剩余部分 (erverAliveInterval=30
) 时并没有产生错误!@IBam 您可能需要编辑答案。 - Adam