ssh如何允许设置远程端口转发但不执行命令?


8

如何设置SSH命令以允许端口转发但不执行命令。

我知道ssh登录可以使用-N来停止命令的执行,但是可以将ssh配置文件设置为禁止它吗?

限制外壳类型和Linux中的路径是可选的,但是可以在SSH配置本身中完成吗?

Answers:


6

查看man sshd并搜索AUTHORIZED_KEYS FILE FORMAT

您要做的是创建一个公钥/私钥对,然后~/.ssh/authorized_keys照常将公钥放入文件中。然后编辑authorized_keys文件以添加字符串:

command =“ / bin / false”,no-agent-forwarding,no-pty,no-user-rc,no-X11-forwarding,permitopen =“ 127.0.0.1:80”

最终看起来像:

command="/bin/false",no-agent-forwarding,no-pty,no-user-rc,no-X11-forwarding,permitopen="127.0.0.1:80" ssh-dss AAAAC3...51R==

您可能希望将参数更改为“ permitopen”,并可能更改其他一些设置,但是我认为基本上就是这样。


我猜想allowopen设置了可以从用户端转发的本地端口。它会影响远程端口转发吗?它仅适用于该键吗?
vfclists 2010年

authorized_keys文件位于远程(ssh服务器)端。它指示允许具有授权密钥的客户端通过服务器连接的主机+端口组合。您在本地(ssh客户端)侧使用的端口无关紧要(并且可能未与服务器通信),因此将其省略。是的,它仅适用于该密钥(这就是为什么它与对应于允许的密钥的公共密钥在同一行上列出的原因)
Slartibartfast 2010年

1
这里有一个错字:no-usr-rc应该是no-user-rc
xebeche 2012年

2
答案中仍然有一个no-usr-rc的实例-不确定您是否错过了一个实例或者是否尚未处理编辑?
戴夫·格雷戈里

1
这就是为什么我讨厌6个字符的限制规则。我花了半个小时试图找出问题所在,当我用错字复制了一个错误时,才发现这是因为除了所有者之外没有人可以纠正此答案。
zypA13510

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.