Назад | Перейти на главную страницу

Настроить SSH, чтобы разрешить переадресацию портов, но не использовать команды для определенного ключа?

Итак, я добавил открытый ключ в 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. Вы сможете довольно легко адаптировать их.

Надеюсь, это поможет вам найти решение.