使用 PuTTY 和 nologin 创建 SOCKS 隧道

使用 PuTTY 和 nologin 创建 SOCKS 隧道

我想为我的 SSH 服务器提供 SOCKS 代理,但不启用 shell 访问。我创建了一个用户并将其 shell 更改为 /usr/bin/nologin,但这意味着当我通过 SSH 进入该用户时,PuTTY 会立即关闭... 有什么方法可以维持会话,以便我可以使用 SOCKS 隧道吗?

答案1

如果只使用公钥认证是可以接受的,那么一种方法就是将指定的公钥条目添加到您的authorized_keys文件,使用command选项来限制可以执行的操作。例如:

command="sleep 100000000",no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAA...

使用此配置,每当您使用此特定公钥登录时,sshd都会自动运行该命令sleep 100000000(本质上是无限期等待),但不允许运行任何其他命令。但是,您仍然应该能够使用 SOCKS 代理功能。有关该选项的更多详细信息command,请参阅 sshd(8) 手册页。

相关内容