Итак, я добавил открытый ключ в 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. Вы можете ограничить, на что пользователи могут перенаправлять порты, просто добавив порты и хосты, которые вы хотите разрешить, например
allowopen = "192.0.2.1:80"
Также вы можете ограничить, откуда подключается пользователь, какие команды могут выполняться и т. Д.
Я бы посмотрел на использование scponly, Я подозреваю, что его можно использовать для переадресации портов, а не для доступа только к scp / sftp. Он предназначен для ограничения пользователя от входа в систему или выполнения команд через ssh.
Другой фактор, который вам может понадобиться или вы захотите использовать sshd в chrootокружающая среда, вот некоторые инструкция по настройке sftp с помощью chroot. Вы сможете довольно легко адаптировать их.
Надеюсь, это поможет вам найти решение.