ssh 그런 다음 다른 서버로 ssh를 실행하고 명령을 실행하고 종료합니다.

ssh 그런 다음 다른 서버로 ssh를 실행하고 명령을 실행하고 종료합니다.

한 서버에 SSH를 연결하고 다른 서버에 SSH를 연결한 다음 두 번째 서버에서 명령을 실행하고 두 서버를 모두 종료하는 bash를 만들려고 합니다.

지금까지 나는 얻었다

ssh [email protected] "ssh [email protected]; cd Dirk; source venv/bin/activate; python app.py; exit; exit;"

하지만 첫 번째 서버에서 SSH로 접속하는 두 번째 서버에서는 명령을 실행할 수 없는 것 같습니다. 어떻게 해야 합니까?

답변1

ssh user@host(중첩 호출처럼) 명령을 인수로 제공하지 않고 실행 하면 ssh는 쉘을 시작하고 명령이 입력될 때까지 기다립니다.

명령을 파이프하면 ssh host1 ssh host 2작동합니다. 귀하의 질문과 동일한 예를 사용하십시오.

echo "cd Dirk; source venv/bin/activate; python app.py" \
| ssh [email protected] ssh [email protected]

답변2

ssh -t어쩌면 당신을 위한 해결책일 수도 있어요

ssh [email protected] -t "ssh [email protected] -t 'cd Dirk; source venv/bin/activate; python app.py; exit; exit;'"

관련 정보