OpenSSH 问题。安装后第一次运行正常。然后就变得很乱

OpenSSH 问题。安装后第一次运行正常。然后就变得很乱

我正在尝试设置一个新的服务器,只是一个带有 openssh 的基本服务器。首先,我尝试使用 Ubuntu 服务器进行常规安装,并在服务器安装的同时安装了 openssh。第一次我尝试使用标准配置文件进行连接,结果

ECDSA key fingerprint is SHA256:uWdXv1DYZ+MmnFOtYadTAPEZj93uculj8a4OZ5lnEOk.
Are you sure you want to continue connecting (yes/no)? yes

然后连接就正常了。然后我大约 1 小时后再次尝试连接,结果

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:B12I+ERcLf+RMREsqxTpy8J5KyoqvsXLbijtz5TUMDw.
Please contact your system administrator.Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/user/.ssh/known_hosts:5

我做了ssh-keygen -f "/home/user/.ssh/known_hosts" 然后又试了一次

The authenticity of host 'ip-adress' can't be established.
ECDSA key fingerprint is SHA256:B12I+ERcLf+RMREsqxTpy8J5KyoqvsXLbijtz5TUMDw.
Are you sure you want to continue connecting (yes/no)? yes

然后去

debug1: Offering RSA public key: /home/user/.ssh/id_rsa
debug3: send_pubkey_test
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/user/.ssh/id_dsa
debug3: no such identity: /home/user/.ssh/id_dsa: No such file or directory
debug1: Trying private key: /home/user/.ssh/id_ecdsa
debug3: no such identity: /home/user/.ssh/id_ecdsa: No such file or directory
debug1: Trying private key: /home/user/.ssh/id_ed25519
debug3: no such identity: /home/user/.ssh/id_ed25519: No such file or directory
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
user@server's password: 
debug3: send packet: type 50
debug2: we sent a password packet, wait for reply
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,password
Permission denied, please try again.

然后又被拒绝了两次。

我读过 openssh 的手册页,用谷歌搜索,尝试过一些常规方法,比如编辑sshd_config为只允许密码、主机身份验证、编辑密钥身份等,但都不起作用。所以我尝试重新安装 openssh,问题相同。尝试使用桌面版 ubuntu 设置新服务器,问题相同。第一次连接时有效,然后就崩溃了。尝试过 debian,问题相同。尝试过旧版本的 Ubuntu,问题相同。我实际上让 1 个服务器安装运行了几次,但 15 秒后,管道一直断开。但我没有收到权限被拒绝的消息。

我想知道,在第一个连接和其余连接之间,openssh 发生了什么?我该如何解决这个问题?似乎服务器正在将我拒之门外,它甚至不尝试让我连接。

答案1

当您第一次连接到服务器时,ssh 会要求您使用以下问题来验证服务器的指纹:

Are you sure you want to continue connecting (yes/no)? yes

当您回答是时,它将在 ~/.ssh 目录中创建一个名为:的文件,known_hosts并将您的服务器身份放在那里以供下次使用。

无论何时,只要服务器中发生影响其身份的变化(例如:服务 IP 地址),您都会收到此消息,因为 ssh 客户端认为您没有连接到正确的服务器。(基于中的数据known_hosts)。

known_hosts您可以使用以下命令删除旧的身份数据:

ssh-keygen -R [IP ADDRESS - OR HOST NAME OF SERVER]

然后尝试再次连接。

如何验证服务器身份:
如果您可以直接访问服务器,例如如果它是虚拟机,则可以运行:

ssh-keyscan -t ecdsa localhost > ssh.ecdsa 2> /dev/null
ssh-keygen -lf ssh.ecdsa

它会给你类似这样的信息:

256 SHA256:0MY+7jktivMDvak0Clfkk49fkgjDbhWYrQBT//BsF5YDoV4 192.168.1.14 (ECDSA)

现在,当使用 ssh 时,您可以验证是否连接到正确的服务器。

相关内容