所以我为 添加了公钥authorized_keys
。我该如何限制它,以便它可以转发端口,但不能有 shell?
答案1
您必须no-pty,command="/bin/false"
在密钥前添加关键字,因此它看起来像这样:
no-pty,command="/bin/false" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABBACzbcwCZNaN3HhHmpnaVrfZlNJ0HhPnOqEj
k2llms1OOPnEXetIlZuJw0UXbyMbhQbBl/E2wxXvXvF+jyLRR5yN6kBydM4LhjC0ej0PcH839vXd
uwJpDFjPw3s7r0VOhU1WRyk6Da6rX6shzabhQioIm3MHCjNOdywPb0k1cTj4yOxoOCOqGjmXK0
xxzTd+ZjTJqQGWzZ+8L8cVtKmU8kspYlCdhGWSv0Den36OsScnWTBn8A3X3lVJB5NkEm
BM1yKX4F6BhhD317VensEUu031PtFULeSF97IxDPmK36OFz9TPSf4d8Hp3BqtysqUlbWfEhYdHXj
+1Mn4xXZKiZhBh1DX youruser@yourhome
(这都在一行中,我添加了换行符以便于阅读)。
答案2
人 sshd
部分AUTHORIZED_KEYS 文件格式。您可以通过添加要允许的端口和主机来限制用户可以转发到哪些端口,例如
permitopen="192.0.2.1:80"
您还可以限制用户从哪里连接、可以执行哪些命令等等。
答案3
我会考虑使用scponly,我怀疑它可以用于端口转发,而不是仅 scp/sftp 访问。它旨在限制用户通过 ssh 登录或执行命令。
您可能需要或想要在chroot'ed 环境,这里有一些有关使用 chroot 设置 sftp 的说明。您应该能够相当轻松地适应它们。
我希望这能帮助您找到解决方案。