使用 Shell 进行超时访问

使用 Shell 进行超时访问

你好,我有一个 Debian 6 Web 服务器,我可以用 Putty 连接它。但如果我让 Putty 保持打开状态,那么即使过了 2 天,我仍然处于登录状态。

我有两个问题:

  1. 我如何确保在空闲时间(比如说一个小时)后我将退出。
  2. 我如何禁用 Root 访问。

非常感谢

答案1

编辑您的/etc/ssh/sshd_config

对于 1. 检查这些选项,我认为这应该可以解决问题:

ClientAliveInterval 30
ClientAliveCountMax 120

解释来自man 5 sshd_config

ClientAliveCountMax

设置在 sshd(8) 未收到任何来自客户端的消息的情况下可以发送的客户端活动消息数量(见下文)。如果在发送客户端活动消息时达到此阈值,sshd 将断开客户端连接,终止会话。需要注意的是,客户端活动消息的使用与 TCPKeepAlive(见下文)有很大不同。客户端活动消息通过加密通道发送,因此不会被伪造。TCPKeepAlive 启用的 TCP keepalive 选项是可伪造的。当客户端或服务器依赖于了解连接何时变为非活动状态时,客户端活动机制非常有用。

默认值为 3。如果 ClientAliveInterval(见下文)设置为 15,并且 ClientAliveCountMax 保留为默认值,则无响应的 SSH 客户端将在大约 45 秒后断开连接。此选项仅适用于协议版本 2。

ClientAliveInterval

设置超时间隔(以秒为单位),如果在此间隔后未从客户端收到任何数据,sshd(8) 将通过加密通道发送一条消息以请求客户端的响应。默认值为 0,表示这些消息不会发送到客户端。此选项仅适用于协议版本 2。

对于 2. 设置PermitRootLogin no;还有其他可能的值:

 PermitRootLogin

指定 root 是否可以使用 ssh(1) 登录。参数必须是“yes”、“without-password”、“forced-commands-only”或“no”。默认值为“yes”。

如果此选项设置为“无密码”,则会禁用 root 的密码验证。

如果将此选项设置为“forced-commands-only”,则将允许使用公钥身份验证的 root 登录,但前提是已指定命令选项(即使通常不允许 root 登录,这对于进行远程备份也很有用)。所有其他身份验证方法对 root 都禁用。

如果此选项设置为“no”,则不允许root登录。

正确(从评论中注意到的旧答案):您需要重新启动 SSH 守护程序:/etc/init.d/sshd restart

相关内容