回答:
バージョン4.9以降、OpenSSH(centos 5.xでは使用できませんが、ChrootDirectory機能はバックポートされました)にはinternal-sftp
サブシステムがあります。
Subsystem sftp internal-sftp
そして、他の使用をブロックします:
Match group sftponly
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ユーザーをsftponly
グループに追加します。/
chrootのため、ユーザーのホームディレクトリをに変更する/home/user
必要があり、所有者はである必要がありますroot
。/bin/false
ユーザーのシェルとしても設定します。
sftpを許可するがsshを拒否する偽のシェルであるrsshをチェックアウトする
RSSHの詳細
http://www.pizzashack.org/rssh/
RPM
http://pkgs.repoforge.org/rssh/
rsftを設定して、sft、scpなどのさまざまな動作を許可/拒否できます。
/ etc / passwdを変更し、そのユーザーに偽のシェルを与えて、sshを使用できないようにすることができます。
/bin/false
どちらのssh や sftpの作品
一部の選択したユーザーに対してsftpのみを有効にするようにsshを構成することは良い考えであり、scponly
またはのいずれかをインストールした場合は適切に機能しますrssh
。
rssh
うまく動作しますが、jailを設定する必要がない限り、この場合、CHROOTマニュアルの指示に従うのはおかしく、rssh
シェル自体を含む「各ユーザーjail」のすぐ下のシステム実行可能ファイルとライブラリの大部分を「コピー」します。これは、スペースを浪費する方法です。
scponly
jailがセットアップされている場合、ログイン拒否の問題が常に発生するように、構成を深く理解する必要があります。
jailが適切に機能する「ftp」機能、安全なトランザクションとログインのSSL / TLSサポートを許可する簡単な方法は、「古くて機能する」VSFTPDを使用することです。これは、迅速かつクリーンにインストールされ、必要に応じてすべての構成可能性を提供しますしかし、少なくとも:それは動作します!
マウリツィオ。
残念ながら、すべての答えは非常に誤解を招く可能性があります。以下を実行してください。
最初に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ステータス
シェルファイルを作成します。実行を追加して通知メッセージをエコーします
sudo touch / bin / sftponly echo -e '#!/ bin / sh \ necho "このアカウントはSFTPアクセスのみに制限されています。"' | sudo tee -a / bin / sftponly
実行許可を与え、シェルファイルに追加します
sudo chmod a + x / bin / sftponly echo "/ bin / sftponly" | sudo tee -a / etc / shells
最後にテストすると、接続できなくなります。
SSHキーと基本的な冗長性を備えたSFTPクライアントを使用するためのテンプレート:
sftp -v -oPort = $ RANDOM_PORT -i〜/ .ssh / $ SSH_KEY.pem sftpuser @ $ HOST