所以我已经将一个公钥添加到了authorized_keys 。 我怎么能限制它,以便它可以转发端口,但它可能没有壳?
你必须在你的密钥之前放一个no-pty关键字,所以它看起来像这样:
no-pty ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABBACzbcwCZNaN3HhHmpnaVrfZlNJ0HhPnOqEj k2llms1OOPnEXetIlZuJw0UXbyMbhQbBl/E2wxXvXvF+jyLRR5yN6kBydM4LhjC0ej0PcH839vXd uwJpDFjPw3s7r0VOhU1WRyk6Da6rX6shzabhQioIm3MHCjNOdywPb0k1cTj4yOxoOCOqGjmXK0 xxzTd+ZjTJqQGWzZ+8L8cVtKmU8kspYlCdhGWSv0Den36OsScnWTBn8A3X3lVJB5NkEm BM1yKX4F6BhhD317VensEUu031PtFULeSF97IxDPmK36OFz9TPSf4d8Hp3BqtysqUlbWfEhYdHXj +1Mn4xXZKiZhBh1DX youruser@yourhome
(这全部在一行中,为了可读性,我添加了换行符)。
更新:如果你想防止远程命令执行,你必须添加: command="/bin/false"
no-pty,command="/bin/false" ssh-rsa ...
男子sshd
部分AUTHORIZED_KEYS文件格式 。 您可以通过添加要允许的端口和主机来限制用户可以转发的内容
permitopen = “192.0.2.1:80”
您也可以限制用户从哪里连接,哪些命令可以执行等等。
我会看看使用scponly ,我怀疑它可以用于端口转发,而不是scp / sftp-only访问。 它旨在限制用户通过sshlogin或执行命令。
另一个你可能需要或者想要在chroot环境中使用sshd的因素,这里有一些使用chroot设置sftp的说明。 你应该能够很容易地适应它们。
我希望能帮助你find你的解决scheme。