이 피의 오류로 인해 매일 두통이 점점 커지고 있습니다. 나는 이번과 같은 상황을 결코 만나지 못했습니다.
글쎄, SSH에 성공적으로 인증 된 후 몇 가지 작업을 수행 한 다음 SSH 연결이 갑자기 끊어졌습니다!?
내 오류 메시지는 다음과 같습니다. packet_write_wait: Connection to XXX.XX.XX.XXX: Broken pipe
내 오류 메시지가 다음과 같이 표시되기를 바랍니다 Write Failed: broken pipe
.
추가 된 ServerAliveInterval, ServerAliveCountMax, ClientAlive와 같은 인터넷에서 수많은 해결책을 시도했습니다 ….
누군가가 말했다 : TCPKeepAlive를 아니오로 돌리고 ServerAlive bllah blah 바보를 추가했습니다. 나는 또한 그렇게했지만 여전히 같은 오류입니다.
지금까지는 운이 없습니다.
도움을 주시면 감사하겠습니다.
답변
2018 년 이후 독자 여러분,
MelBurslan의 의견을 보여 드리겠습니다.
회사 환경에있는 경우 방화벽 관리자에게 문의하여 규칙 변경 및 / 또는 방화벽 변경이 발생한 경우 방화벽을 다시 시작했는지 확인하십시오. 개인 서버에서 발생하는 경우이 문제가 발생했을 때 sshd 서버 측에서 수행 한 작업에 대한 자세한 정보를 제공해야합니다. 파이프가 파손되면 일반적으로 어떤 이유로 네트워크 연결이 끊어 졌음을 의미합니다.
기본적으로 ssh username@0.0.0.0
VPN (기업 환경)을 통해 사용하려는 경우 . 그런 다음이 오류는 계속 당신과 함께 있어야합니다.
지금까지 찾은 유일한 솔루션 은 mobile-shell 입니다. 누가 만들 었는지 감사합니다.
당신은 설치해야합니다 mosh-server
대상 및 (당신이 ssh’ed 할 서버)에 mosh-client
호스트 컴퓨터에.
패킷이 손실되면 자동으로 다시 연결됩니다. 매우 시원하고 모든 요구에 적합합니다.
행복한 ssh’ing!
답변
VMware Guest 설정에서 IPQoS 옵션 문제임을 발견했습니다. VM에서 IPQoS의 ~ / .ssh / config 값을 “IPQoS af21 cs1″의 기본값에서 낮은 대기 시간 데이터 인 대화식 첫 번째 작업과 두 번째 비 대화식 작업에 대한 노력을 줄였습니다. af21에 대한 새로운 가치를 설정하는 것이 나의 해결책이었습니다.
Host *
IPQoS throughput
나를 위해 일했습니다. 그렇지 않으면 예 MoSH도 작동하지만 mosh는 편리한 방법으로 프록시 설정을 처리하지 않으므로 ProxyJump 명령을 사용합니다.
답변
먼저 문제 가이 문제와 관련이 없는지 확인하십시오 .
그렇지 않은 경우에도 문제가 지속되면 계속 읽으십시오.
나는이 문제도 경험했고 며칠 동안 그것을 양분하려고했습니다.
지정된대로 SSH KeepAlive 매개 변수 또는 커널 TCP 매개 변수 (TCPKeepAlive on / off)로 재생해도 문제가 해결되지 않습니다.
USB- 이더넷 드라이버 및 TCP 덤프로 재생 한 후 문제가 커널 4.8로 인한 것임을 깨달았습니다. 소스 (송신 측)를 4.4 LTS로 전환했는데 문제가 사라졌습니다 (rsync, scp가 다시 잘 작동했습니다). 원하는 경우 대상 측은 4.8로 유지 될 수 있습니다. 사용 사례에서는 이것이 작동했습니다 (테스트).
기술적 인 측면에서, 아래에 만든 wireshark 덤프 덕분에 문제를 약간 좁힐 수 있습니다. SSHv2 프로토콜의 TCP 채널이 재설정되고 (TCP의 RST 플래그가 1로 설정 됨) 연결이 중단되는 것을 볼 수 있습니다. 나는 RST의 원인을 아직 모른다. 이를 위해 4.8.1에서 4.8.11로 이등분해야합니다.
나는 당신의 문제가 특별히 커널 4.8 때문이라고 말하지는 않지만 wrt입니다. 질문 / 메시지를 게시 한 날짜에 실제로 버그가있는 커널 버전을 사용했을 수 있습니다.
처음에 StackOverflow에서 응답했습니다 .
답변
ssh -o IPQoS=throughput user@{ip}
답변
아래 명령으로 대상 서버에서 ssh.config 파일을 엽니 다.
sudo nano /etc/ssh/ssh.config
해당 파일의 끝에 아래 줄을 추가하십시오
ClientAliveInterval 300
ClientAliveCountMax 2
Ctrl + o를 누르고 입력하십시오.
sudo 재부팅
이것은 나를 위해 잘 작동했습니다. 나는 같은 상황에 있었다. 이것과 그것을 시도했지만 다음 단계를 따르십시오. 만이. 나는 그것이 당신에게도 효과가 있기를 바랍니다.