외부 로컬 네트워크에서 Raspi에 연결하려고 하면 SSH 시간 초과가 발생합니다.

외부 로컬 네트워크에서 Raspi에 연결하려고 하면 SSH 시간 초과가 발생합니다.

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

관련 정보