0

サーバー上に、別の人に sftp アクセスを許可する必要があるアカウントがあります。ただし、この人物はディレクトリの小さなサブセットへのアクセスのみを必要とします。別のユーザー アカウントを作成せずに、ssh キーをそのディレクトリのサブセットに制限することは可能ですか。

基本的に、これらのディレクトリがある Web サイトは、特定のユーザー アカウントのホーム ディレクトリ内にあります。使用をそれらのディレクトリにロックダウンするためだけに、別のユーザーアカウントを作成する必要はありません。理想的なsshキーを使用して特定のディレクトリへのアクセスをロックダウンできる場合。

4

2 に答える 2

0

それは可能ですが、一種のハックです。より好ましい、より簡単な方法は、特定のファイルとディレクトリへのアクセス許可のみをそのユーザーに付与することです。

于 2012-07-21T21:30:17.250 に答える
0

これは、sftp ではなく ssh を使用して目標を達成する方法に関する回答です。これはまだsshツールチェーンを使用しているため、OPに受け入れられる可能性があります。

この手法は、ssh がホスト マシンに提示された秘密鍵に基づいてコマンドを実行できるようにする ssh の機能を使用しています。ホストはそのキーを確認すると、関連するコマンドを実行します。コマンドには、ファイルをダンプする「cat」を使用します。

  1. このような行を追加します~mr_user/.ssh/authorized_keys2
command="/usr/bin/cat ~/sshxfer/myfile.tar.gz.uu",no-port-forwarding ssh-dss xxxPUBLIC_KEYxxx mr_user@tgtmach
  1. 次のようにファイルに入力します。
uuencode -m myfile.tar.gz /dev/stdout >~mr_user/sshxfer/myfile.tar.gz.uu
  1. ターゲット マシン上で次のコマンドを実行して、ファイルを転送します。
ssh -i ~/keys/privatekey.dsa mr_user@srcmach |sed -e's/
//g' |uudecode >myfile.tar.gz

そのコマンドのトリッキーな部分は、.uu ファイルから改行を削除するために sed コマンドに改行があることです。

転送するファイルの名前を渡す方法が見つからなかったため、転送するファイルごとにキーを作成する必要がありました。転送したいファイルが 2 つしかなかったので、これは私のユース ケースでは問題ありませんでした。

于 2013-08-30T20:11:56.527 に答える