원격 위치에 설치된 장치에서 부팅할 때 autossh를 통해 시작된 SSH 터널을 사용하고 있습니다. 지금까지는 모든 것이 잘 작동했지만 어제 연결이 부분적으로 중단되어 autossh가 작업을 수행할 수 없었습니다. 이런 일이 다시 발생하지 않도록 무슨 일이 일어났는지 알아내고 싶습니다. SLA 등을 처리해야 합니다.
세부사항은 다음과 같습니다:
설정
원격 사이트:
- Raspberry Pi의 Raspbian(debian wheezy) - 부팅 시 실행되는 Autossh는 서버에 연결하고 3개의 SSH 터널을 설정합니다. 터널 1: 일반 터널은 Raspberry Pi의 로컬 포트를 사무실에 있는 서버로 전달합니다. 터널 2: 역방향 터널은 서버에서 포트를 엽니다. 원격 네트워크의 장치로 터널 3: 역방향 터널은 서버의 루프백(127.0.0.1) 어댑터에서 루프백 어댑터의 Raspberry Pi SSH 포트로의 포트를 엽니다.
따라서 기본적으로 이 설정을 사용하면 서버에 SSH로 연결한 다음 각 원격 장치에 SSH로 연결할 수 있습니다.
SSH 서버:
-Debian Wheezy - 서버에 방화벽/iptables가 없습니다. 이를 위해 다른 상자를 사용합니다.
질문
두 역방향 터널(터널 2 및 3) 모두 서비스가 중단되었습니다. 산출
sudo netstat -atp | grep ssh
아직 열려 있는 유일한 포트는 터널 #1임을 나타냅니다.
서버의 터널 #1에 대한 ssh 프로세스를 종료하면 autossh가 작업을 수행하고 모든 터널이 다시 연결되지만 그렇게 할 필요는 없습니다.
이것이 autossh의 정상적인 동작입니까? 역방향 터널을 모니터링하는 autossh에 문제가 있습니까?
원격 장치의 시스템 로그
Sep 7 06:25:06 remote_hostname rsyslogd: [origin software="rsyslogd" swVersion="5.8.11" x-pid="1661" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
Sep 8 06:25:05 remote_hostname rsyslogd: [origin software="rsyslogd" swVersion="5.8.11" x-pid="1661" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
Sep 8 10:24:57 remote_hostname autossh[1428]: ssh exited with error status 255; restarting ssh
Sep 8 10:24:57 remote_hostname autossh[1428]: starting ssh (count 2)
Sep 8 10:24:57 remote_hostname autossh[1428]: ssh child pid is 24161
Sep 8 16:53:53 remote_hostname autossh[1428]: ssh exited with error status 255; restarting ssh
Sep 8 16:53:53 remote_hostname autossh[1428]: starting ssh (count 3)
Sep 8 16:53:53 remote_hostname autossh[1428]: ssh child pid is 30541
Sep 9 06:25:05 remote_hostname rsyslogd: [origin software="rsyslogd" swVersion="5.8.11" x-pid="1661" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
답변1
로그 출력을 생성하기 위해 다양한 방법을 사용하고 있지만
가장 중요한 방법은 언급하지 않았습니다.
명령 ssh
자체에는 "verbose" 옵션이 있습니다 -v
.
더 흥미로운 점은 "매우 상세한" 옵션도 있다는 것입니다 -vv
.
아, 그리고 "매우, 매우 상세하다" -vvv
는 것은 실제로는 너무 상세할 수도 있습니다!
-v, -vv 또는 -vvv 옵션을 사용하여 ssh를 실행하면 추가 정보가 제공됩니까?
활성화된 옵션의 자세한 정보를 표시합니다.
$ ssh -v localhost true |& wc -l
56
$ ssh -vv localhost true |& wc -l
122
$ ssh -vvv localhost true |& wc -l
282