无法从家庭 Linux ssh 进入我的服务器,但可以从 Windows ssh 进入同一服务器

无法从家庭 Linux ssh 进入我的服务器,但可以从 Windows ssh 进入同一服务器

我无法从我的 Ubuntu 安装之一通过 ssh 连接到我的服务器,但如果我使用另一个 Ubuntu 安装或 Windows 操作系统,则使用 SSH 连接可以顺利进行。

我的 Ubuntu 安装中出现了一些问题,我正在努力寻找确切的问题。

我尝试重新安装 ssh/openssh-client/openssh-/ssh

以下是详细输出中的几行:

ssh username@MYSERVERADDRESS -v
debug1: Offering RSA public key: /home/user/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: Authentication succeeded (publickey).
Authenticated to MYSERVER ([MYSERVERADDRESS]:22).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: pledge: network
packet_write_wait: Connection to MYSERVERADDRESS port 22: Broken pipe

通过谷歌搜索尝试了许多不同的解决方案,但从未奏效。删除了 .ssh 目录,删除了 /etc/ssh/ssh_config (它是使用默认值再次自动创建的)。

另一个信息是问题不是来自服务器端,因为我可以使用另一个操作系统和相同的网络通过 SSH 连接到服务器。

更新 :

  1. 防火墙已禁用

  2. 服务器托管在云上

  3. 我有 3 台不同的机器,分别启动 Windows 和 Linux。

  4. SSH 在所有机器上都能完美运行,除了 Linux 连接出现问题的机器之外,在同一台使用 Windows 的机器上,一切都运行良好。

  5. 第 4 点更清晰:共有 3 台机器分别加载了 Linux 和 Windows(双启动),只有一台机器在运行 Linux 时出现 SSH 问题。

如果您需要我提供更多数据(服务器地址和用户名除外),请告诉我。

答案1

我已经找到了这个问题的解决方案(很抱歉回答我自己的问题)。我回答这个问题是因为如果有人遇到这个问题,那么他/她可以使用我找到的解决方案。

实际上问题出在服务器端和客户端上。

服务器端问题是/home/<user>/.ssh/known_hosts服务器上的文件对于 Ubuntu 安装具有无效条目,因为两个操作系统具有相同的硬件 ID 和相同的 IP(静态 IP)但密钥不同。

所以我所做的是:

ssh-keygen -f /home/<user>/.ssh/known_hosts -R ip.ip.ip.ip

就我而言,ip.ip.ip.ip 是我的网络的静态公共 IP。在服务器和客户端计算机上执行此命令,其中 ip.ip.ip.ip 将分别更改。

我不知道这个命令的作用(我从谷歌搜索/试验错误中找到了这个解决方案)

您还可以将客户端计算机的known_hosts 文件复制到其他客户端计算机或操作系统。

对不起,我的英语不好。

如果有人知道这个命令的作用以及为什么这个命令解决了问题,那么请告诉我们!谢谢。

宾果游戏解决了!

答案2

被锁定在您的服务器之外?快到后面去吧!

由于以下原因被锁定在服务器之外:

  • 主机密钥验证失败错误
  • SSH 错误配置
  • 配置错误
  • 防火墙锁定

注意:这适用于 Unix | Linux 上,Windows 上不行。

让我们开始吧。

根据您的情况,有两种选择。

选项 1:终端访问(如果您可以重新获得终端访问权限

终端访问选项

更新您的系统:

sudo aptitude update && aptitude safe-upgrade -y

*或者您可以使用:

sudo apt-get update && apt-get upgrade -y

现在重新安装损坏的 ssh

sudo apt-get --install ssh -y

您将安装更新版本!

修理主机密钥验证失败错误消息,执行:

ssh-keygen -R hostname

SSH 访问被阻止?立即恢复!

如果您完全无法访问服务器接收超时当尝试使用 ssh 连接时,由于;防火墙配置错误、端口阻塞、磁盘故障或 ssh 配置错误、主机密钥验证失败错误等。你将使用磁盘安装选项。

磁盘安装选项(远程服务器

假设你已经尝试过远程重启、远程重置、远程硬件重置通过网络界面,问题仍然存在。

请询问您的数据中心给你一个KVM控制台访问并将您的盒子启动到救援模式 (您可以免费获得 1 小时

从控制台访问: 登录:

*ubuntu@rescue#*

安装磁盘

    mkdir tempDisk

    mount --bind /dev/xvda2 /tempDisk
    mount --bind /proc /tempDisk/proc
    mount --bind /dev /tempDisk/dev
    mount --bind /sys /tempDisk/sys

    chroot /tempDisk

注意:现在您已处于 root 状态,您的提示将会改变

**root@your-host#**

调查问题并解决它。例如更新您的系统以修复潜在的错误。

sudo apt-get update && apt-get upgrade -y
sudo apt-get --install ssh -y

使固定主机密钥验证失败错误消息:

ssh-keygen -R hostname

完成后退出返回 DKM 控制台提示符

`**root@your-host#** exit `

银行获救

*ubuntu@rescue#*

通过相同的 KVM 控制台重新启动服务器。

*ubuntu@rescue#* shutdown -r now

恢复正常登录,就可以开始了。

本地访问选项

如果你有本地或机架访问,取出磁盘,将其安装到另一个相同版本的工作linux中,例如:

***mytech@hostname#***

 mkdir tempDisk

mount --bind /dev/xvda2 /tempDisk
mount --bind /proc /tempDisk/proc
mount --bind /dev /tempDisk/dev
mount --bind /sys /tempDisk/sys

使用以下命令重新获取访问权限:chroot /tempDisk

注意:现在您已处于服务器的根目录中,您的提示将发生变化!

myServer@hostname#;

sudo apt-get update && apt-get upgrade -y
sudo apt-get --install ssh -y

使固定主机密钥验证失败错误消息:

ssh-keygen -R hostname

完成退出

`**myServer@hostname#** exit `

取出磁盘并将其重新插入原始服务器,然后让她兴奋

答案3

我不确定我的问题是否与您的问题完全相同,但很相似,所以我将发布我的解决方案。

初步信息

  • 我双启动 Ubuntu 20.04 和 Windows 10
  • 我连接的系统位于同一个本地网络上
  • 我无法从 Ubuntu 连接到我的服务器,但我可以使用 putty 在 Windows 10 上连接到我的服务器

现在来看解决方案,它相对简单。

因此,当我尝试从 Ubuntu 连接到我的服务器时,我使用了这个命令ssh USER@SERVER_NAME,但它不起作用,所以我决定找到我的服务器的本地地址,我从我的路由器中找到了这个地址。然后我尝试了这个命令ssh USER@SERVER_LOCAL_IP ,它起作用了。

希望这对某人有所帮助。

相关内容