MacBook Air를 백업하는 데 사용할 Ubuntu 서버를 설정했습니다 rsync
. 하지만 rsync
, even 을 사용할 때마다 scp
다음 오류 중 하나와 함께 연결이 끊어집니다.
packet_write_wait: Connection to 192.168.1.202: Broken pipe
packet_write_poll: Connection to 192.168.1.202: Broken pipe
packet_write_poll: Connection to 192.168.1.202: Protocol wrong type for socket
이제 다른 유사한 문제를 검색했는데 일반적으로 사람들은 세션 시간 초과로 인해 긴 백업에 문제가 있습니다. 나에게 있어서 이것은 항상 파일 전송을 시작한 후 10초 이내에 발생합니다. scp와 rsync를 사용하여 동일한 오류가 발생했습니다. 네트워크 연결 오류 때문일 수도 있겠지만, 동일한 LAN에 있는 서버에 대한 연결이 이렇게 불안정하다는 것이 믿기지 않습니다. 누구든지 아이디어가 있나요?
내가 사용한 명령 중 오류가 발생한 예는 다음과 같습니다.
scp -r /Users/Matt/Documents [email protected]:/media/matt/MattsBackups/
/usr/local/bin/rsync -av -e ssh /Users/Matt/Documents [email protected]:/media/matt/MattsBackups/
오늘 좀 더 테스트를 했는데 이상하게도 LAN 외부에서도 꽤 안정적으로 작동했습니다. 그래서 홈 네트워크에서 다시 시도했지만 여전히 작동하지 않았습니다.
달리기
grep 'sshd' /var/log/auth.log
서버에 다음과 같은 오류가 표시됩니다
fatal: ssh_dispatch_run_fatal: Connection from <My IP> port 49870: message authentication code incorrect
내 설정에 대한 자세한 정보는 다음과 같습니다.
Macbook Air OS X 10.11.5
OpenSSH_6.9p1, LibreSSL 2.1.8
rsync version 3.1.2 protocol version 31
Ubuntu Server
OpenSSH_7.2p2 Ubuntu-4ubuntu1, OpenSSL 1.0.2g-fips 1 Mar 2016
SSH 버전에서 차이점을 발견했지만 문제가 되지 않기를 바랍니다. homebrew를 사용하여 최신 버전을 설치해 볼 수 있습니다.
고쳐 쓰다:
좋아, 방금 homebrew를 사용하여 ssh를 업데이트했습니다.
OpenSSH_7.2p2, OpenSSL 1.0.2g 1 Mar 2016
이것은 Ubuntu 상자에 사용된 것과 동일한 버전인 것 같습니다. 그러나 Rsync는 명령을 실행할 때 여전히 오류를 발생시킵니다. 다음은 ssh -v 플래그를 사용하여 시도한 명령입니다.
/usr/local/bin/rsync -a -e '/usr/local/bin/ssh -v -c aes128-ctr -m hmac-sha1' /Users/Matt/Documents [email protected]:/media/matt/MattsBackups/
출력은 다음과 같습니다
OpenSSH_7.2p2, OpenSSL 1.0.2g 1 Mar 2016
debug1: Reading configuration data /usr/local/etc/ssh/ssh_config
debug1: Connecting to 192.168.1.202 [192.168.1.202] port 22.
debug1: Connection established.
debug1: identity file /Users/Matt/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/Matt/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/Matt/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/Matt/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/Matt/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/Matt/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/Matt/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/Matt/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.2
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.2p2 Ubuntu-4ubuntu1
debug1: match: OpenSSH_7.2p2 Ubuntu-4ubuntu1 pat OpenSSH* compat 0x04000000
debug1: Authenticating to 192.168.1.202:22 as 'matt'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: [email protected]
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: aes128-ctr MAC: hmac-sha1 compression: none
debug1: kex: client->server cipher: aes128-ctr MAC: hmac-sha1 compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:+zkrXNJENs5EobFwHa8wpMDe6zPDfj975qLcPp4b4sg
debug1: Host '192.168.1.202' is known and matches the ECDSA host key.
debug1: Found key in /Users/Matt/.ssh/known_hosts:1
debug1: rekey after 4294967296 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: rekey after 4294967296 blocks
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<rsa-sha2-256,rsa-sha2-512>
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/Matt/.ssh/id_rsa
debug1: Server accepts key: pkalg rsa-sha2-512 blen 279
debug1: Authentication succeeded (publickey).
Authenticated to 192.168.1.202 ([192.168.1.202]:22).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: pledge: network
debug1: client_input_global_request: rtype [email protected] want_reply 0
debug1: Sending command: rsync --server -logDtpre.iLsfxC . /media/matt/MattsBackups/MacAir/
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Connection to 192.168.1.202 closed by remote host.
Transferred: sent 145304, received 13032 bytes, in 0.1 seconds
Bytes per second: sent 1373019.8, received 123143.2
debug1: Exit status -1
rsync: [sender] write error: Broken pipe (32)
rsync error: error in socket IO (code 10) at io.c(820) [sender=3.1.2]
답변1
최후의 수단으로 Windows 98 PC에서 오래된 10/100 이더넷 카드를 찾아 서버에 설치했습니다. 구성한 후에는 더 이상 오류가 발생하지 않았으며 약 30GB가 넘는 데이터를 보유했습니다. 내장된 이더넷 칩셋이 우분투에서는 제대로 작동하지 않는 것 같아요. 아니면 제가 어떻게든 잘못 구성했거나요.
편집: 문제의 근본 원인을 찾지 못했지만 @sourcejedi의 답변 아래에 있는 주석 스레드를 확인하십시오. @sourcejedi, @sneep 및 @dentarg에게 큰 감사를 드립니다.
답변2
이는 SSH의 버그일 수 있습니다. 시간이 지남에 따라 그러한 예가 여러 가지 있었습니다. (양쪽에 사용된 정확한 버전을 반드시 게시해야 합니다).
http://www.alcateluunleashed.com/viewtopic.php?t=25294
원격 네트워크 경로가 더 안정적인 이유를 알 수 없거나 이 문제를 해결하기 위한 제안이 없습니다. 네트워크 박스 결함으로 인해 발생할 수도 있지만...
Ubuntu 서버가 최근에 설치되었고 사용 가능한 모든 업데이트가 설치되어 있었다면 Mac 클라이언트의 소프트웨어가 오래되고 유사한 버그의 영향을 받기 때문에 더 의심스러울 것입니다.
다양한 MAC 등을 테스트할 수 있습니다. 예를 들어
scp -o MACs=hmac-md5
hmac-md5는 md5(예: HTTPS 인증서의 컨텍스트)처럼 취약한 것으로 간주되지 않습니다(ssh의 컨텍스트에서). 나는 그것이 eg 보다 대부분 느릴 것으로 예상합니다 [email protected]
. 그러나 -etm
가능하다면 패턴을 사용하는 것이 좋습니다.
이 링크는 이전 옵션을 선호할 수 있음을 나타냅니다.
MACs hmac-md5,hmac-sha1,[email protected],hmac-ripemd160
그리고 그것은 특정한 실수를 피할 것입니다. 마음에 드는 것을 찾으면 거기서 구성할 수 있습니다 /etc/ssh_config
.
이것도 Cipher
문제가 될 수 있습니다. 예를 들어 aes-gcm을 사용하는 경우 [email protected]
별도의 MAC이 전혀 없을 수도 있습니다. 따라서 최소한 명령을 ssh
추가 하고 실제로 사용되는 MAC을 찾아서 수행 중인 작업을 확인 해야 합니다 .-v
답변3
Mac OSX에서도 동일한 문제가 발생했습니다. 대부분의 ssh/scp 세션이 작동하지 않습니다. 특히 대용량 파일의 경우에는 더욱 그렇습니다. 알고 보니 네트워크 인터페이스를 수동으로 설정했는데 마음에 들지 않았습니다. 다시 자동 구성으로 변경했더니 모든 것이 다시 작동하기 시작했습니다.
System preferences > Network > Ethernet > Advanced > Hardware > Configure: set dropdown to automatic
답변4
https://github.com/PowerShell/Win32-OpenSSH/issues/2078#issuecomment-1928004585..최신 소식
노력하다:
~/.ssh/config
host *
kexalgorithms [email protected],curve25519-sha256,[email protected],diffie-hellman-group-exchange-sha256,diffie-hellman-group18-sha512,diffie-hellman-group16-sha512
ciphers [email protected],[email protected],aes256-ctr,aes192-ctr,aes128-ctr
macs [email protected],[email protected],[email protected]
hostkeyalgorithms [email protected],ssh-ed25519