서비스를 시작하고 ssh 또는 autossh를 사용하여 스크립트를 실행/로드하고, 백그라운드에서 원격 포트 전달 "-f"를 사용하여 스크립트에서 more/next 명령을 실행하세요!

서비스를 시작하고 ssh 또는 autossh를 사용하여 스크립트를 실행/로드하고, 백그라운드에서 원격 포트 전달 "-f"를 사용하여 스크립트에서 more/next 명령을 실행하세요!

내 구성:

debian 10.9

4.19.0-19-amd64

OpenSSH_7.9p1 Debian-10+deb10u2, OpenSSL 1.1.1d 10 Sep 2019

autossh 1.4g

GNU bash, 5.0.3(1)-release (x86_64-pc-linux-gnu)

서비스를 시작해요/etc/systemd/system/myshh.service

ExecStart=/home/user/ssh_run내 스크립트를 시작해ssh_run

이것은 제가 시도한 SSH 및 AUTOSSH의 많은 예 중 두 가지입니다.

ssh_run스크립트

#!/bin/bash

ssh -f -NT -o "ServerAliveInteval=30" -o "ServerAliveCountMax=2" \
-R 5555:localhost:443 -l [USER] [IP] -p [PORT] -i [KEY-WITHOUT-PASSWORD]

EXECUTE NEXT COMMAND

또는

#!/bin/bash

/usr/bin/autossh -f -NT -o "ExitOnForwardFailure=yes" \
-R 5555:localhost:443 -l [USER] [IP] -p [PORT] -i [KEY-WITHOUT-PASSWORD]

EXECUTE NEXT COMMAND
  1. 쉘에서 개별적으로 명령을 실행하면 작동합니다.ssh -f -NT ......

  2. 스크립트를 실행하면 작동합니다../ssh_run

  3. 서비스를 시작했는데 작동하지 않을 /etc/systemd/system/myshh.service-f

3개 명령 모두 다음 명령을 실행하지 않습니다.

질문:

/etc/systemd/system/myshh.service스크립트 ./ssh_run와 백그라운드를 사용하여 서비스를 시작하면 -f이제 다음 명령이 실행되지만 서비스는 상태 코드 0으로 종료되지만 ssh 또는 autossh ps aux | grep [s]sh는 없습니다.ps aux | grep [a]utossh

systemctl status myshh.servicegrep저도 오류 는 없는지 확인했어요journalctl

Restart=30서비스가 중지되거나 다시 시작되었지만 동일한 결과가 발생했습니다. 서비스 유무에 관계없이 시도했습니다.Restart=alwaysEnvironment="AUTOSSH_GATETIME=0"

모든 스택 사이트의 게시물 대부분을 읽고 검색 엔진을 사용해 보았지만 해결책을 찾을 수 없었습니다. 시도해 보았지만 (command)....결과가 없습니다....execbash -c

이제 내 질문/질문:

다음 명령을 실행하기 위해 백그라운드(즉, 서비스에서 시작된) bash 스크립트에서 ssh/autossh 원격 포트 전달 명령을 실행하려면 어떻게 해야 합니까?

답변1

누구든지 동일한 문제가 있는 경우 이 게시물을 통해 지금 당장 내 하루를 절약할 수 있습니다.

내 systemctl 서비스가 시작되지 않는 이유를 찾는 방법

Type=forking내 서비스 파일에 추가되었습니다 /etc/systemd/system/myshh.service.

-f이제 백그라운드 실행 옵션을 사용하여 bash 스크립트에서 ssh/autossh 원격 포트 전달 명령을 실행할 수 있습니다. 즉, 서비스에서 시작하여 스크립트에서 다음/추가 명령을 실행할 수 있습니다.

관련 정보가 포함된 게시물에 대한 추가 링크:

systemctl status 서비스에서 전체 로그를 보는 방법은 무엇입니까?

nohup, disown, &의 차이점

스크립트에서 백그라운드 프로세스를 시작하고 스크립트가 끝나면 관리합니다.

관련 정보