Все ответы являются чрезвычайно вводящими в заблуждение, к сожалению: сделайте следующее:
Первый создают sftp пользователя, и группа sftp
Создают отдельный каталог, как поддерживают файлы SFTP: sudo mkdir -p /home/sftpdir
#$OpenBSD: sshd_config,v 1.101 2017/03/14 07:19:07 djm Exp $ # This is the sshd server system-wide configuration file. See # sshd_config(5) for more information. # This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin # The strategy used for options in the default sshd_config shipped with # OpenSSH is to specify options with their default value where # possible, but leave them commented. Uncommented options override the # default value. Port 38250 Port 22 PasswordAuthentication no ChallengeResponseAuthentication no # Set this to 'yes' to enable PAM authentication, account processing, # and session processing. If this is enabled, PAM authentication will # be allowed through the ChallengeResponseAuthentication and # PasswordAuthentication. Depending on your PAM configuration, # PAM authentication via ChallengeResponseAuthentication may bypass # the setting of "PermitRootLogin without-password". # If you just want the PAM account and session checks to run without # PAM authentication, then enable this but set PasswordAuthentication # and ChallengeResponseAuthentication to 'no'. UsePAM yes X11Forwarding yes PrintMotd no # Allow client to pass locale environment variables AcceptEnv LANG LC_* #DenyUsers sftpuser # override default of no subsystems Subsystem sftp internal-sftp Match group sftp Match User sftpuser Match LocalPort 38250 ForceCommand internal-sftp ChrootDirectory /home/sftpdir PermitTunnel no AllowAgentForwarding no X11Forwarding no AllowTcpForwarding no
Перезапуск, и проверьте состояние sshd сервиса
sudo сервис sshd перезапуск
, сервис sshd состояние
Создает файл Shell. Добавьте, что выполнение для повторения уведомления
sudo затрагивает, эхо/bin/sftponly-e '#!/bin/sh\necho "Эта учетная запись ограничено доступом SFTP только"'. | sudo-a/bin/sftponly
мишени Дают полномочия выполнения и добавляют в файл
оболочек sudo chmod a+x/bin/sftponly, повторяют "/bin/sftponly" | sudo-a/etc/shells
мишени наконец Тест, и Вы не должны мочь соединиться.
А обрабатывают по шаблону для использования клиента SFTP с ключевым и основным многословием SSH:
sftp-v-oPort= $RANDOM_PORT-i ~/.ssh/$SSH_KEY.pem sftpuser@ $HOST
Прикрепление на предложение ErikA. Вы не должны использовать ключи для использования команды силы.
Можно также указать что-то вроде этого в sshd_config.
Match User xxxx
ForceCommand /usr/bin/nnnn
Match Group yyyy
ForceCommand /usr/bin/nnnn
Один важный бит - то, что необходимо будет проверить, должен видеть, позволяет ли приложение, которое Вы вызываете, пользователю на самом деле запускать другую оболочку или процесс.
Я рассмотрел бы использование автора с открытым ключом и "принудительной команды" функциональность там. В каждом пользователе ~/.ssh/authorized_keys
файл, сделайте что-то вроде этого:
command="/path/to/application" ssh-rsa <rest_of_users_public_key>
Если Вы установите это и выключите автора пароля (очень хорошая практика так или иначе), то она гарантирует, что пользователь будет только когда-либо мочь выполнить указанное приложение. Если Вы очень уверены, что нет никаких средств пользователей, выполняющих команды оболочки через это приложение, то chroot тюрьма не может быть необходимой, но это действительно должно быть оставлено для Вас для определения.