저는 A 머신에 있고 A 에서 scp
. 이 구성을 변경할 수 없습니다.root
root
ssh
scp
A에서 실행하는 root
동안 B의 비밀번호를 묻지 않기 때문에 표준 문이 작동하지 않습니다.scp
어떡해?
답변1
sudoers
내 상자에서 작동하게 할 수 있지만 옵션이 requiretty
손상될지는 확실하지 않습니다 .
sudo
컴퓨터 B에서 암호를 묻는 프로그램을 만듭니다. 예를 들어 /home/myname/askpass.sh
, chmod
그것은+x
#!/bin/bash
echo "my_password"
scp
원격 명령에 대한 SSH 연결을 설정하고 관련 명령을 삽입 할 컴퓨터에 연결 스크립트를 만듭니다 . 예를 들어 sudo
이렇게 부르세요 ../fakessh.sh
chmod
+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.
ncat
socat
또는 같은 것을 실행하고 사용자 정의 수신 포트를 가리킬 수 있다면 sudo
다른 해킹을 생각할 수 있지만 scp
보안 관점에서 보면 어리석은 일이 됩니다.