현재 sh 파일에서 다음 명령을 실행하고 있습니다. 이 명령은 파일이 존재하는지 확인하고 응답을 읽습니다.
sshpass -p "$PASS" ssh -t $USER@$IP 'echo '$PASS' | sudo -S [ -d /myFile ]' && echo "INFO: already exists /myFile, continue? [Y/n]" && read RESULT
이제 동일한 작업을 수행해야 하지만 중간에 다른 장치가 있어야 합니다. 그래서 나는 가지고있다:
내 컴퓨터->Device_1 ->Device_2
Device_1: IP_1
, USER_1
, PASS_1
;Device_2: IP_2
, USER_2
, PASS_2
.
그래서 myComputer에서 Device_2로 직접 동일한 작업을 수행할 수 있기를 원합니다. 로깅은 자동으로 이루어져야 하며 비밀번호가 없어야 합니다.
노트:
이것이 도움이 될지는 모르겠지만 다음 명령을 실행하여 Device_2에 직접 연결할 수 있습니다.
env SSHPASS="$PASS_2" \
sshpass -d 123 ssh \
-o ProxyCommand="sshpass -e ssh -W %h:%p $USER_2@$IP_2" \
$USER_1@$IP_1 \
123<<<$PASS_1
어쨌든, 나는 장치에 연결하고 싶지 않고 단지 명령을 실행하고 싶기 때문에 이것은 나에게 소용이 없습니다.
답변1
OpenSSH에는 정확히 이 목적을 위한 ProxyJump
( 및 ProcyCommand
) 옵션이 있으므로 이를 사용하는 것이 좋습니다. 명령 -J
줄 옵션은 전자와 동일합니다.