즉, 컴퓨터가 부팅 할 때마다 연결이 끊어지면 서버와 다시 연결하는 ssh 포트 전달 연결을 시작하려고합니다. 컴퓨터는 데비안 Wheezy x64입니다.
초기 및 성공적인 연결은 다음과 같이 할 수 있습니다.
screen -dmS autossh autossh -M 29000 -N -v -p 22 -l user -i /path/to/.ssh/id_rsa -L port:my-computer:port my-server.com
시작할 때 실행하려면 어떻게해야합니까? (root가 아닌 사용자가 선호). 현재 부트시 프로그램을 시작하는 방법은 다음과 같습니다.
rc.local은 다음과 같이 시작 스크립트를 호출합니다.
su -c "/home/username/scripts/startup" username
현재 / home / username / scripts / startup에는 다음이 포함되어 있습니다.
screen -dmS program1 python my-python-program
screen -dmS program2 python my-python-program2
screen -dmS autossh autossh -M 29000 -N -v -p 22 -l user -i /path/to/.ssh/id_rsa -L port:my-computer:port my-server.com
부팅이 완료되면 세 개의 프로그램이 모두 실행중인 것처럼 보입니다 (목록 화면 -ls). program1 또는 program 2에는 문제가 없습니다. 그러나 autossh는 실제로 포트를 전달하지 않습니다.
나에게 성공한 연결이 성공하는 것과 시작시 실패한 연결이 실행되는 것의 차이점은 성공적인 연결에는 다음과 같은 줄이 있다는 것입니다.
debug1: channel 4: free: direct-tcpip: listening port 8082 for 192.168.1.104 port 80, connect from ::1 port 59681,
nchannels 5
실패한 연결은 다음과 같이 계속 시도합니다.
debug1: Connection to port 8082 forwarding to 192.168.1.104 port 80 requested.
debug1: channel 4: new [direct-tcpip]
debug1: Connection to port 8082 forwarding to 192.168.1.104 port 80 requested.
debug1: channel 5: new [direct-tcpip]
debug1: Connection to port 8082 forwarding to 192.168.1.104 port 80 requested.
debug1: channel 6: new [direct-tcpip]
debug1: Connection to port 8082 forwarding to 192.168.1.104 port 80 requested.
debug1: channel 7: new [direct-tcpip]
debug1: Connection to port 8082 forwarding to 192.168.1.104 port 80 requested.
debug1: channel 8: new [direct-tcpip]
어떤 생각이 잘못 됐습니까? 수동으로 실행할 때 프로그램이 제대로 작동하지만 시작 스크립트에서는 실행되지 않는 이유는 무엇입니까?
죄송합니다 - 전체 답변을 드릴 시간이 없지만 : harding.motd.ca/autossh 길을 따라 당신을 도울 것입니다.
—
FreudianSlip