rssh、またはSCPを許可するがSSHを無効にする方法

状況は非常に適切です。SSHアクセスを備えたリモートLinuxマシンがあり、このマシンにファイルをアップロードする機会を知っている人に緊急に提供する必要があります。 もちろん、このためにFTPサーバーを展開するのは絶対に面倒です。 はい、そしてなぜ、SCPがあるのですか?



それは不運です。このマシンでこの友人が何かをできるようにしたくありません。 まあ、あなたは何を知っていることはありません。 そのため、まずは個々のユーザーを開始し、ファイルをアップロードするホームディレクトリをユーザーに割り当て、このユーザーの周囲のディレクトリへのアクセスを制限します。 それでも、このユーザーはまだシェルにアクセスでき、私たちは偏執狂を経験しているので、まったく好きではありません。



出力がポップアップするようです:デフォルトのシェルユーザー(/ bin / sh)を別のものに置き換える必要があります。 たった今? / bin / false、/ bin / trueはsshに何もさせませんが、scpも機能しません。 魔法のgit-shellがありますが、もう1つは少しだけです。



インターネットでの短い検索により、問題が長い間解決されていることが明らかになりました-rssh (制限付きSSH)があります。 彼のタスクは、ユーザーにscp、sftp、rsyncなどのいくつかのサービスを許可するだけですが、他のコマンドの実行は禁止します。



Debian / Ubuntuで、リポジトリからインストールします。



$ sudo apt-get install rssh
      
      





インストール後、/ etc / rssh.confにアクセスして、必要なサービス(allowscp、allowrsyncなど)の行のコメントを解除する必要があります。 その後、/ etc / passwdに新しく作成されたユーザーが、ファイル/ usr / bin / rsshをシェルとして登録します。 これでアクセスを確認できます:



 $ ssh rsshuser@remote This account is restricted by rssh. Allowed commands: scp rsync If you believe this is in error, please contact your system administrator. Connection to remote closed. $ scp ./file.txt rsshuser@remote:file.txt file.txt 100% 51KB 1.2MB/s 00:03 $
      
      





特に機密性の高いシステムの困難な段階の偏執病の場合、同じ場所で異なるユーザーに許可されたサービスの個々のリストを設定し、最大の分離のために別のchrootを選択することもできます。



PSこのユーティリティは新しいものとはほど遠いことは知っていますが、Habréにはまだ説明がありませんでした。



All Articles