내 정보는 다음과 같습니다.
SOCKS5 프록시로 사용되는 SSH 연결이 있습니다. 컴퓨터를 켤 때마다 다시 초기화해야 하는 것이 짜증스럽습니다.
ServerAliveInterval
에 설정했습니다60
.~/.ssh/config
추가할 권한이 없으며ClientAliveInterval
추가하더라도 동일한 효과가 있습니다.내가 받은 특정 오류 메시지는 "깨진 파이프"였습니다.
screen
아니면tmux
여기서는 도움이 되지 않습니다. 매번 추가해야 하므로 다시 numero uno로 돌아갑니다.autossh
작동하지 않는 것 같습니다. 실행해서autossh -M 0 -DPORT alias
작업관리자에서 봤는데 5분을 기다려도 SSH 연결이 다시 시작되지 않는 것 같았습니다.
위의 세 가지 옵션 중 하나를 사용하라는 질문을 많이 읽었지만 그중 어느 것도 깨우거나 일시 중지하는 것과 관련이 없습니다. 나는 이것을 한 번만(컴퓨터에 로그인할 때) 발생하기를 원하기 때문에 일부 bash init 스크립트에 넣을 수 없습니다. 그러나 동시에 컴퓨터를 사용하는 동안 SSH 연결이 끊어지는 경우에도 SSH 연결이 활성 상태로 유지되기를 원합니다. 목표를 달성하기 위해 어떤 효과 조합을 사용합니까?
답변1
연결 지속성
영구 연결에는 서버 측 지원이 필요합니다. 이는 현재 openssh 서버에서는 사용할 수 없습니다(그리고 앞으로도 그럴 것 같지 않습니다).
클라이언트 부분은 몇 년 전에 구현되었으며 유명한UseRoaming
이 기능은 몇 주 전에 openssh에서 제거되었습니다. 이 기능은 작동하지 않았으며주요 보안 결함. SSH 서버 에서 작동할 수도 있지만 appgate.com
이 취약점에 대해 처음 들어봤습니다.
클라이언트/서버 활동 간격은 일시 중지와 깨우기 사이에 IP 주소를 변경하지 않는 경우 TCP 연결 유지 중에만 유효합니다.
네트워크 시작 후 스크립트
ifup
귀하의 경우에는 스크립트(네트워크 인터페이스가 시작된 후 실행되는 스크립트)를 사용하여 솔루션을 고려해 보겠습니다 . /sbin/ifup-local
SOCKS5를 시작하면 다음과 같이 보일 수 있습니다 .
#!/bin/sh
if [[ "$1" == "eth0" ]]
then
ssh -DPORT alias
else
#DO_NOTHING
fi
스크립트를 실행 가능하게 만드는 것을 잊지 마십시오 sudo chmod +x /sbin/ifup-local
. 네트워크 인터페이스나 기타 항목을 구별하여 스크립트에 더 많은 검사와 항목을 추가할 수도 있습니다.원천
답변2
(약간의 주제에서 벗어난 답변이지만 귀하의 경우에는 유용할 수 있습니다)
UDP를 통한 OpenVPN을 통해 ssh를 실행할 수 있습니다(방화벽에서 허용하는 경우). 이 접근 방식은 효과적이지만 다시 연결하는 데 상당한 지연이 발생합니다(1분 정도).
하지만, 사용할 수 있다면 시도해 보세요.모쉬. 처음부터 연결 지속성을 염두에 두고 구축되었습니다.