내 예는 서버를 통해 터널링 중이고 암호를 입력하지만 작업이 완료되면 stdin을 열어 두는 명령을 생성하려는 것입니다. 예를 들어, 이 원격 호스트에 로그인할 때마다 다른 사용자에게 sudo를 실행해야 합니다. 그래서 나는 다음과 같은 일을 했습니다:
ssh -p $tunnel_port $me@localhost -t "sudo -S -u $_remoteUser -i" <<< "$( findPassword )"
"findPassword"는 비밀번호 관리자로부터 내 비밀번호를 가져오는 기능입니다.
이렇게 하면 연결이 닫힙니다. sudo의 stdin에 비밀번호를 쓴 후 어떻게 연결을 열어두나요?
답변1
ssh 명령의 STDIN이 findPassword에서 제공된다는 참조가 있습니다. findPassword에서 sudo 명령을 제공하려는 STDIN입니다.
ssh -p $tunnel_port $me@localhost -t "echo $(findPassword) | sudo -S -u $_remoteUser -i"
또는
ssh -p $tunnel_port $me@localhost -t "sudo -S -u $_remoteUser -i < $(findPassword)"