SSH를 사용하여 로컬 네트워크 외부의 Raspberry Pi에 연결하려고 합니다.
로컬 네트워크 내에서 연결할 수 있습니다.
내 파이에는 고정 IP 주소와 포트 전달이 올바르게 설정되어 있습니다.
내 SSH 포트가 22에서 다른 무료 포트로 변경되었습니다.
내가 사용하는 명령은 다음과 같습니다.
ssh -vvvp 49100 pi@**.***.**.*
다음은 ssh 명령의 자세한 출력입니다.
OpenSSH_7.6p1, LibreSSL 2.6.2
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 48: Applying options for *
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to **.***.**.* port 49100.
debug1: Connection established.
debug1: identity file /Users/armandfardeau/.ssh/id_rsa type 0
debug1: key_load_public: No such file or directory
debug1: identity file /Users/armandfardeau/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/armandfardeau/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/armandfardeau/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/armandfardeau/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/armandfardeau/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/armandfardeau/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/armandfardeau/.ssh/id_ed25519-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_7.6
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.4p1 Raspbian-10+deb9u3
debug1: match: OpenSSH_7.4p1 Raspbian-10+deb9u3 pat OpenSSH* compat 0x04000000
debug3: fd 5 is O_NONBLOCK
debug1: Authenticating to **.***.**.*:49100 as 'pi'
debug3: put_host_port: [**.***.**.*]:49100
debug3: hostkeys_foreach: reading file "/Users/armandfardeau/.ssh/known_hosts"
debug3: send packet: type 20
debug1: SSH2_MSG_KEXINIT sent
문제가 무엇인지 아시나요?
답변1
이 문제는 잘 알려진 MTU/조각화 문제와 유사합니다. ssh-server 및 ssh-client 네트워크 인터페이스의 MTU를 동일한 더 작은 값으로 바꿉니다. 네트워크 인터페이스가 SSH를 수신하고 있다고 가정합니다 eth0
(Detect it 사용 ifconfig
). 인터페이스의 현재 MTU 값을 확인합니다.
cat /sys/class/net/eth0/mtu
인터페이스의 현재 MTU(아마도 1500)를 더 작은 숫자로 임시로 바꿉니다. 예를 들면 다음과 같습니다.
sudo ifconfig eth0 mtu 1496
또는
echo 1496 | sudo tee /sys/class/net/eth0/mtu
1496번으로 문제가 해결되지 않으면 MTU 1250 등을 시도해 보세요. 특정 MTU 값 이후에 문제가 사라지면 인터페이스 변경 사항을 유지하십시오.
다음 내용을 주의 깊게 읽어보세요.http://www.snailbook.com/faq/mtu-mismatch.auto.html