远程机器的 SSH 外部连接不起作用

远程机器的 SSH 外部连接不起作用

我已经设置了 Ubuntu Desktop 18.04,并且正在尝试设置 ssh 服务,以便我可以从任何地方远程 ssh 到机器。下面我提供了一些解决问题的建议,但问题仍然存在,欢迎大家提出任何建议。我只是想知道我是否能够远程 ssh 到我的机器,这样我就可以继续前进了。

带有旧选项的 SSH 远程服务器

ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -c 3des-cbc 
Computer@Computer -vv
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
debug2: resolving "Computer" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to Computer [Computer] port 22.

TCPDUMP 主机

sudo tcpdump -i interface port 22 -vvv

18:50:47.949925 IP (tos 0x28, ttl 48, id 46536, offset 0, flags [DF], proto TCP (6), length 244)
    Computer.ssh > Computer.34798: Flags [P.], cksum 0xc9f3 (correct), seq 85512151:85512343, ack 4029662038, win 377, options [nop,nop,TS val 3486052520 ecr 3637652101], length 192
18:50:47.950859 IP (tos 0x28, ttl 48, id 46537, offset 0, flags [DF], proto TCP (6), length 132)
    Computer > Computer.34798: Flags [P.], cksum 0x4e9b (correct), seq 192:272, ack 1, win 377, options [nop,nop,TS val 3486052521 ecr 3637652101], length 80
18:50:47.950905 IP (tos 0x10, ttl 64, id 61816, offset 0, flags [DF], proto TCP (6), length 52)
    Computer > Computer.ssh: Flags [.], cksum 0x0f98 (correct), seq 1, ack 272, win 1444, options [nop,nop,TS val 3637663146 ecr 3486052520], length 0

NetCAT 主机

 nc -vv (IP) 22
 Connection to (IP) 22 port [tcp/ssh] succeeded!
 SSH-2.0-dropbear_0.46

/var/log/auth.log 主机

Feb 13 18:55:44 Computer sshd[9699]: Server listening on 0.0.0.0 port 22.
Feb 13 18:55:44 Computer sshd[9699]: Server listening on :: port 22.
Feb 13 18:55:44 Computer polkitd(authority=local): Unregistered Authentication Agent for unix-process:9689:610496 (system bus name :1.203, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_CA.UTF-8) (disconnected from bus)

防火墙主机

sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere                  
22                         ALLOW       Anywhere   

杂项

Systemctl restart sshd
Systemctl enable sshd
Systemctl enable ufw          

答案1

如果您尝试从家庭网络外部进行远程访问,则需要在路由器上进行配置。具体来说,在路由器的端口 22 上启用端口转发到服务器。

但是,需要注意一些预防措施。将服务器暴露在互联网上是一件危险的事情,不应掉以轻心。至少,您应该为登录帐户设置一个非常强且长的密码,并严格禁用通过 SSH 的 root 登录。下一步是使用加密密钥,并将登录限制为只有拥有密钥的人才能登录。更进一步的步骤是将 SSH 使用的端口从 22 改为 22,因为我从经验中可以得知,这个端口完全被潜在的黑客所淹没;每隔几秒钟,您就会收到来自暴力攻击者的登录尝试。

相关内容