当我使用安全shell连接到Amazon EC2并且几分钟内没有输入任何内容时,一切都冻结了。我无法输入任何内容或退出。几分钟后,我收到服务器发来的消息......
上次登录时间:2013年12月6日星期五23:21:28来自pool-173-52-249-158.nycmny.east.verizon.net ubuntu @ ip-172-31-31-33:〜$写入失败:管道损坏
之前有些人不得不遇到这个问题。如果您能够了解使用云的newb的情况。
答案 0 :(得分:5)
尝试以下选项:
探索ServerAliveCountMax
和ServerAliveInterval
。这些设置在SSH客户端/etc/ssh/ssh_config
中设置。
来自man ssh_config
:
ServerAliveCountMax
Sets the number of server alive messages (see below) which may be sent without ssh(1) receiving any mes‐
sages back from the server. If this threshold is reached while server alive messages are being sent, ssh
will disconnect from the server, terminating the session. It is important to note that the use of server
alive messages is very different from TCPKeepAlive (below). The server alive messages are sent through
the encrypted channel and therefore will not be spoofable. The TCP keepalive option enabled by
TCPKeepAlive is spoofable. The server alive mechanism is valuable when the client or server depend on
knowing when a connection has become inactive.
The default value is 3. If, for example, ServerAliveInterval (see below) is set to 15 and
ServerAliveCountMax is left at the default, if the server becomes unresponsive, ssh will disconnect after
approximately 45 seconds. This option applies to protocol version 2 only; in protocol version 1 there is
no mechanism to request a response from the server to the server alive messages, so disconnection is the
responsibility of the TCP stack.
和
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. The default is 0,
indicating that these messages will not be sent to the server, or 300 if the BatchMode option is set.
This option applies to protocol version 2 only. ProtocolKeepAlives and SetupTimeOut are Debian-specific
compatibility aliases for this option.
服务器端也提供类似的设置ClientAliveInterval
和ClientAliveCountMax
。这些设置位于服务器端的/etc/ssh/sshd_config
。
来自man sshd_config
:
ClientAliveCountMax
Sets the number of client alive messages (see below) which may be sent without sshd(8) receiving any mes‐
sages back from the client. If this threshold is reached while client alive messages are being sent,
sshd will disconnect the client, terminating the session. It is important to note that the use of client
alive messages is very different from TCPKeepAlive (below). The client alive messages are sent through
the encrypted channel and therefore will not be spoofable. The TCP keepalive option enabled by
TCPKeepAlive is spoofable. The client alive mechanism is valuable when the client or server depend on
knowing when a connection has become inactive.
The default value is 3. If ClientAliveInterval (see below) is set to 15, and ClientAliveCountMax is left
at the default, unresponsive SSH clients will be disconnected after approximately 45 seconds. This
option applies to protocol version 2 only.
和
ClientAliveInterval
Sets a timeout interval in seconds after which if no data has been received from the client, sshd(8) will
send a message through the encrypted channel to request a response from the client. The default is 0,
indicating that these messages will not be sent to the client. This option applies to protocol version 2
only.
答案 1 :(得分:2)
由于不活动,您的防火墙(来自不同位置)看起来正在丢弃会话。
我会尝试像@slayedbylucifer在你的〜/ .ssh / config
中说出类似的东西Host *
ServerAliveInterval 60