Rsync/scp/sftpを介してファイルをアップロード/ダウンロードできるようにユーザーをセットアップできるようにLinuxボックス(おそらくUbuntuサーバー)を構成したいのですが、マシンにsshを実行できないようにする必要がありますインタラクティブな端末を入手します。
これは可能ですか?それを構成するにはどうすればよいですか? rsync/scp/sftpが機能するためには、sshサーバーをオンにする必要があることはすべてわかっていますが、直接ログインを防ぐ方法があるはずです。
ユーザーのシェルを rssh に設定します。マンページから:
rssh-scpおよび/またはsftpのみを許可する制限付きのセキュアシェル
Rsyncのみを許可する必要がある場合、rsyncの開発者は問題を解決するためにrrsync
スクリプトを提供します。ここから入手できます: http://ftp.samba.org/pub/unpacked/rsync/support/rrsync
.authorized_keys
ファイルにこのようなものを追加する必要があります。この例では、-ro
への読み取り専用(/some/directory/
)アクセスを許可します。
command="/path/to/rrsync -ro /some/directory/",no-agent-forwarding,no-port-forwarding,no-pty,no-user-rc,no-X11-forwarding ssh-rsa AAA...
説明と例の詳細については、こちらをご覧ください: https://www.guyrutenberg.com/2014/01/14/restricting-ssh-access-to-rsync/
更新:このバグが修正されるまで、これは書き込みアクセスに対して安全ではありません: https://bugzilla.samba.org/show_bug.cgi?id=11879
このバグが続く限り、読み取り専用モード(-ro)でのみrrsyncを使用してください。
scponly のような疑似シェルを使用して、直接ログインしたくないユーザーにこれを設定できます。
別の可能な方法は、許可されたキーファイルにログインコマンドを設定することですが、これは、ユーザーがパスワードではなくSSHキーを介してログインする場合にのみ機能します。