SSH를 통해 명령을 실행하고 중간으로 점프 1

SSH를 통해 명령을 실행하고 중간으로 점프 1

현재 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줄 옵션은 전자와 동일합니다.

관련 정보