rootアクセスを必要とするリモートシステムからscp経由でファイルをコピーする(リモートrootアクセスを無効にする)

rootアクセスを必要とするリモートシステムからscp経由でファイルをコピーする(リモートrootアクセスを無効にする)

私はAマシンにあり、Aからscp。この構成は変更できません。rootrootssh

scpAで実行しているroot間、Bのパスワードを要求しないため、標準文は機能しません。scp

どうですか?

ベストアンサー1

sudoers私のボックスで動作させることができますが、オプションが破損するrequirettyかどうかはわかりません。

sudoコンピュータBでパスワードを要求するプログラムを作成します。たとえば/home/myname/askpass.shchmod+x

#!/bin/bash
echo "my_password"

scpリモートコマンドへのSSH接続を確立し、関連コマンドを挿入するコンピュータに接続スクリプトを作成します。たとえば、sudoこう呼んでください。./fakessh.shchmod+x

#!/bin/bash

oldargs=( $@ )

newargs=( )

while : ; do
  [ "${oldargs[0]}" == "scp" ] && break

  newargs+=( "${oldargs[0]}" )
  oldargs=( "${oldargs[@]:1}" )
done

newargs+=( 'export SUDO_ASKPASS=/home/myname/askpass.sh' \; exec sudo -A -- "${oldargs[@]}" )

exec ssh "${newargs[@]}"

上記のスクリプトはこれを参照しているため、/home/myname/askpass.sh必要に応じてパスを更新してください。

今はscpほとんどうまくいきます。

scp -S ./fakessh.sh user@hostname:/etc/shadow ./

これは私にとって効果的です。 YMMV。

ncatsocatまたは、同じことを実行してカスタム受信ポートを指すことができる場合は、別のハッキングを考えることができますが、セキュリティのsudo観点から見るとscp愚かなことになります。

おすすめ記事