使用PuTTY和nologin创建SOCKS隧道


1

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

Answers:


2

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

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

有了这个配置,每当您使用此特定公钥登录时,sshd将自动运行该命令sleep 100000000(基本上无限期地等待),但将禁止运行任何其他命令。但是,您仍应该能够使用SOCKS代理功能。有关该command选项的更多详细信息,请参阅sshd(8)联机帮助页。


我知道这是一个潜在的解决方案,但我怎么能提供密码认证的代理呢?分发密钥并不像用户/通行证组合那样容易,可以随心所欲地轻松传达。
deed02392

如果你真的想这样做,你应该能够定义你自己的“nologin”型shell,它只是睡了很长时间。也就是说,只需定义一个sleep 100000000如上所述调用的shell脚本,并将其另存为/usr/local/bin/nologin或任何您喜欢的内容。另外,请务必将其添加到/etc/shells
jjlin

这听起来是个很好的解决方案。现在,当我遇到同事时,我只需简单地共享密码,而不是安排交换密钥。
deed02392
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.