允许用户设置SSH隧道,但无其他设置
时间:2020-03-05 18:39:00 来源:igfitidea点击:
我想允许用户在特定端口(例如5000)上建立到特定计算机的SSH隧道,但是我想尽可能地限制该用户。 (身份验证将使用公钥/私钥对)。
我知道我需要编辑相关的〜/ .ssh / authorized_keys文件,但是我不确定到底要放什么内容(除了公钥)。
解决方案
回答
有关验证公钥的信息,请参见这篇文章。
我们需要记住的两件事是:
- 确保我们使用" chmod 700〜/ .ssh"
- 将公钥块追加到授权密钥
回答
我们将通过用户使用的任何ssh客户端在用户计算机上生成密钥。例如,pUTTY具有实用程序来执行此操作。它将生成私钥和公钥。
生成的公共密钥文件的内容将放置在authorized_keys文件中。
接下来,我们需要确保将ssh客户端配置为使用生成公钥的私钥。这相当简单,但是根据所使用的客户端而略有不同。
回答
我们可能需要将用户的外壳设置为受限外壳。在用户的〜/ .bashrc或者〜/ .bash_profile中取消设置PATH变量,他们将无法执行任何命令。稍后,如果我们决定要允许用户执行一组有限的命令,例如less
或者tail
,则可以将允许的命令复制到单独的目录(例如/ home / restricted-commands
)并更新PATH以指向该目录。
回答
I'm able to set up the authorized_keys file with the public key to log in. What I'm not sure about is the additional information I need to restrict what that account is allowed to do. For example, I know I can put commands such as: no-pty,no-port-forwarding,no-X11-forwarding,no-agent-forwarding
我们可能希望authorized_keys文件中的一行如下所示。
permitopen="host.domain.tld:443",no-pty,no-agent-forwarding,no-X11-forwardi ng,command="/bin/noshell.sh" ssh-rsa AAAAB3NzaC.......wCUw== zoredache
回答
除了诸如no-X11-forwarding之类的authorized_keys选项外,实际上我们还要求提供一个:allowopen =" host:port"。通过使用此选项,用户只能建立到指定主机和端口的隧道。
有关AUTHORIZED_KEYS文件格式的详细信息,请参考man sshd。