사용자에게 sudo 암호를 묻는 스크립트가 있고 호스트 목록을 반복하고 원격 호스트에서 명령을 수행합니다. -s를 사용하여 암호를 자동으로 얻을 수 있지만 원격 호스트에서 암호를 사용할 때마다 암호가 터미널에 다시 표시됩니다. 로컬 호스트에서 stty를 변경해도 도움이되지 않습니다. 예 :여기에 문서를 터미널에 에코하지 않으려면 어떻게해야합니까?
stty_orig=$(ssh -t remote_host stty -g)
ssh -t remote_host stty -echo
ssh -tt remote_host sudo cat /etc/cma.conf <<EOP
$SUDOPASS
EOP
ssh -t remote_host stty $stty_orig
FWIW, 난 : 그것은 또한 원격 호스트에서 stty를 함께 플레이하는 데 도움이되지 않습니다
+ ssh -tt remote_host sudo cat /etc/cma.conf
My_P4ssW0rd!
Password:
<?xml version="1.0" encoding="UTF-8"?>
...
: 출력은 여전히 암호를 포함
#!/bin/sh -x
echo "Enter sudo pass:"
read -s SUDOPASS
stty_orig=$(stty -g)
stty -echo
ssh -tt remote_host sudo cat /etc/cma.conf <<EOP
$SUDOPASS
EOP
stty $stty_orig
OSX bash/sh와 주로 관련이있다
암호에 공백과 백 슬래시가있는 경우를 대비하여'IFS = read -rs SUDOPASS'를 사용해야합니다. –