我使用 Windows 8 连接 Linux 服务器。几天前连接正常,但现在我无法使用我的电脑连接它。我可以用任何其他电脑连接到该服务器。
我已经检查了路由器上没有阻塞的端口,或者服务器没有阻塞任何与 SSH 或 telnet 相关的端口(22 端口是完全开放的)。
- 可以从我的计算机 ping 系统。
- 可以使用任何其他计算机访问系统。
- 该系统上的端口 22 已打开。
- SSH 或 telnet 都无法在我的系统上运行,但我可以 ping 该系统。
我不知道我做了什么或安装了什么,但它不起作用。我该如何找出问题?
答案1
我第一次尝试解决这个问题是
- 打开PuTTY
- 选择会话 > 日志记录
- 启用将 SSH 输出记录到文件
- 尝试连接
- 查看日志文件
日志文件里写了什么?有什么可以指引你走向特定方向的吗?它可能包含从“连接超时”到“访问被拒绝”等各种消息。
连接超时:
确保 PuTTY 的会话选项中给出了正确的 IP 地址和 TCP 端口。如果您使用的是主机名而不是 IP 地址,请确保主机名解析为正确的 IP 地址。最后还要检查c:\system32\drivers\etc\hosts
。
如果您已配置 UFW 防火墙,但未允许 ssh 连接,请sudo ufw allow ssh
在您的服务器上运行。在此之前,您可以通过以下方式测试这是否是问题所在(隔离它):暂时的禁用服务器上的防火墙sudo ufw disable
并检查是否存在问题。要重新启用,请运行sudo ufw enable
。
您是否管理 SSH 服务器?如果是,请确保 SSH 确实在端口 22 上监听;如果不是,请/etc/ssh/sshd_config
在服务器上进行更改或在 PuTTY 中调整端口。还要检查是否iptables
允许您的客户端 IP 地址通过。
如果您不管理 SSH 服务器,请与管理员联系。
我个人喜欢在我的 SSH 服务器上安装knockd
,这样我只有在敲击某些端口后才能连接到它们。询问管理员是否必须执行类似操作。
拒绝访问:
如果您尝试以 身份登录,则服务器root
可能禁止此操作。请使用其他用户名/您的用户名登录。/etc/ssh/sshd_config
如果您使用公钥身份验证,请确保您的私钥
- 采用 PuTTY
.ppk
格式 - 在 PuTTY 的连接 > SSH > Auth 部分输入。
还要检查相应的公钥是否在 中/home/yourusername/.ssh/authorized_keys
。确保没有换行符(我使用的是换行符nano
,如果我将密钥复制到其中,有时会添加换行符)。正确的行应该是这样的,例如对于 RSA:ssh-rsa ALOTOFCHARACTERS yourusername@hostname
。
那么。第一步:启用日志记录并在此处发布输出。;)
答案2
我遇到了类似的问题。重新安装 putty 并启动 putty 会话到服务器成功了。不确定问题的根本原因。
希望这对遇到同样问题的人有所帮助。
答案3
我最近遇到了和你类似的问题。我发现这可能是由一系列问题引起的,所以我会尽力将其分解。
由于您可以通过其他计算机连接,我假设您已正确转发端口。
如果您尝试从与服务器相同的 wifi 连接外部 IP,我发现这实际上不起作用。尝试通过其他人的 wifi 甚至服务器的内部 IP 进行连接,看看是否可行。
总的来说,试着想想这台电脑和你连接的其他电脑有什么不同。祝你好运。
答案4
我以前遇到过同样的问题,问题解释是服务器和客户端之间的每次交互都是加密的。
要使用服务器和客户端之间的远程连接,您必须在 Ubuntu 机器上允许或启用 SSH。
启用 SSH 将允许您远程连接到您的系统并执行管理任务。
在 ubuntu 中验证 SSH 的状态,只需运行此命令:
sudo systemctl status ssh
通过运行以下命令在 ubuntu 中允许 SSH:
sudo ufw allow ssh
然后您可以使用远程桌面连接远程连接到服务器。