마침내 내 ISP로부터 공용 IP를 얻었고 내 컴퓨터에 연결할 수 있도록 인터넷을 통해 SSH 서버를 설정하려고 합니다. 로컬 네트워크에서 연결하면 전혀 문제가 없지만, 인터넷에서 연결하면 다음 메시지가 나타납니다.
[oliver@brick ~]$ ssh -v oliver@{IP}
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Reading configuration data /etc/ssh/ssh_config.d/05-redhat.conf
debug1: /etc/ssh/ssh_config.d/05-redhat.conf line 2: include /etc/crypto-policies/back-ends/openssh.config matched no files
debug1: /etc/ssh/ssh_config.d/05-redhat.conf line 8: Applying options for *
debug1: Connecting to {IP} [{IP}] port 22.
debug1: Connection established.
debug1: key_load_public: No such file or directory
debug1: identity file /home/oliver/.ssh/id_rsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/oliver/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/oliver/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/oliver/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/oliver/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/oliver/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/oliver/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/oliver/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.4
debug1: Remote protocol version 2.0, remote software version dropbear_0.51
debug1: no match: dropbear_0.51
debug1: Authenticating to {IP}:22 as 'oliver'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: (no match)
Unable to negotiate with {IP} port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1
또한 키 교환 방법으로 diffie-hellman-group1-sha1을 지정하고 연결을 시도했지만 비밀번호를 요청한 후 올바른 비밀번호를 입력했음을 알고 있음에도 권한이 거부되었다고 표시됩니다. 그러나 클라이언트와 서버 모두에서 ssh -Q kex를 실행하면 둘 다 일치하는 키 교환 방법이 두 개 이상 있기 때문에 무엇이 잘못되었는지 이해가 되지 않습니다. 로컬 연결과 동일해야 하지 않습니까? 물론 포트 22를 전달하도록 라우터를 구성했습니다. 나는 서버와 클라이언트로 다른 컴퓨터를 사용하여 여러 컴퓨터에서 이것을 시도했습니다. sshd_config가 전혀 구성되어 있지 않습니다. 뭐가 문제 야? 사용해본 컴퓨터에서 Arch Linux와 Fedora를 실행하고 있는데 Android 휴대폰을 사용하여 연결도 시도했습니다.
답변1
내 라우터도 SSH 서버를 실행하고 있으므로 클라이언트가 해당 서버에 연결을 시도하고 있습니다. 방금 전달을 위해 다른 포트를 사용했는데 작동했습니다. 제가 실행하고 있던 OpenSSH 서버가 아니라 dropbear 서버에 연결하고 있음을 보여주는 디버그 출력을 읽어 이 문제를 해결해 주신 user4556274에게 감사드립니다.