如何防止使用 nologin shell 的用户的 SSH 连接被服务器关闭?

如何防止使用 nologin shell 的用户的 SSH 连接被服务器关闭?

基本信息: 服务器操作系统:CentOS 6.3 客户端工具:PuTTY

我使用 PuTTY 通过 SSH 连接到我的服务器。我使用 /sbin/nologin shell 添加了一个帐户。当我登录到该帐户(选择“从不”退出时关闭窗口)时,控制台显示“此帐户当前不可用”并且 PuTTY 提示“连接被远程主机关闭”。

但我希望服务器应该只说“帐户不可用”而不关闭连接,以便我仍然可以通过此连接进行隧道传输。

我还注意到,对于普通的 /bin/bash 用户,当输入 exit 时,有时连接会关闭,有时服务器会说“LOGOUT”但仍然连接(我仍然可以通过它进行隧道传输)。

那么如何确保 nologin shell 帐户的连接不会被关闭呢?

答案1

允许使用 shell 的帐户/usr/sbin/nologin设置建立端口转发。但是,如果您尝试运行 shell 命令,连接将被强制终止。修复方法是不运行 shell 命令。使用 OpenSSH(几乎所有非嵌入式 Unix/Linux 系统上的 SSH 实现),将选项传递-N给 SSH 客户端。

ssh -N -L 1234:somehost:5678 [email protected]

使用 PuTTY,勾选“根本不启动 shell 或命令”在连接 > SSH 选项卡中。

答案2

从男人 ssh:

The session terminates when the command or shell on the remote machine exits and all X11 and TCP connections have been closed.

我认为将 /bin/cat 作为日志 shell 的最简单方法(但不是唯一)。肮脏的黑客。

相关内容