允许用户设置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。