ssh升级后登录centos问题解决

2,755 阅读3分钟

ssh的时能、棹长,sftp 不能登录

tail /var/log/secure显示:

no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1 [preauth]

原因未在sshd配置文件中明确配置KexAlgorithms,openssh可能使用的默认密钥交换算法

解决,先查询支持的算法的ssh:

ssh -Q cipher
ssh -Q mac
ssh -Q kex

将查询出的算法写入sshd_config

echo 'KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group14-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,curve25519-sha256,curve25519-sha256@libssh.org,sntrup4591761x25519-sha512@tinyssh.org' >> /etc/ssh/sshd_config

echo 'MACs hmac-sha1,...'  >> /etc/ssh/sshd_config

echo 'Ciphers 3des-cbc,aes128-...'  >> /etc/ssh/sshd_config

参考链接:blog.csdn.net/qq_40338425…

遇到的问题:ssh连接服务器,响应很慢,最后显示:Permission denied, please try again.

实测解决方法: mobaxterm在session中取消两项的配置

• SSH compression : ✘

• X11-forwarding : ✘ (disabled in session settings)

此时ssh可以登录,但sftp连接不上,恢复配置后ssh很慢最后不能登录,sftp可以连接


原因及说明 :【问题待最终解决】

使用调试方式连接:ssh -vvv lfwy@172.126.11.3【可以使用mobaxterm 中建立的Termianl连接窗口运行】

输入密码登录后: Authentication succeeded (password).

但后面显示:

debug2: X11 forwarding request accepted on channel 0
debug3: receive packet: type 99
debug2: channel_input_status_confirm: type 99 id 0
debug2: PTY allocation request accepted on channel 0

之后无响应或显示Permission denied, please try again.

【使用mobaxterm的ssh连接时,sftp可以连接,ssh命令窗口无响应】

解决: 服务器、客户端同时配置 X11Forwarding

服务端 服务端的配置位于/etc/ssh/sshd_config中,对该文件配置以保证服务端sshd服务可以进行X11转发。

确保该文件包含以下选项:

X11Forwarding yes

修改该文件后需重启sshd服务:

systemctl restart sshd

客户端 客户端有两种方法保证ssh可以进行X11转发:

修改/etc/ssh/ssh_config或~/.ssh/config文件 前者是全局配置,后者为当前用户配置,二者都存在的情况下,后者会覆盖前者的配置。

有两个选项需要注意:

ForwardX11

ForwardX11Trusted

这两个选项的作用是互相有影响的,表现为:

ForwardX11 ForwardX11Trusted ssh_mode

no no disabled

no yes disabled

yes no untrusted

yes yes trunsted

对于ssh_mode的解释:

disabled: 无法进行X11转发,但可以通过ssh命令参数来提升获得转发的能力。 untrusted:通过不可信连接进行X11转发,该模式下,当前客户端默认为不可信客户端,它不信任sshd服务器。因此该客户端在服务器上的权限受限,并且无法通过该客户端修改X11显示的其他客户端。(当然,其他客户端也不能修改当前客户端!)该模式下的客户端,也可以通过为ssh命令配置-Y参数提升为可信客户端。 trusted: 通过可信连接进行X11转发,该模式下,当前客户端充分信任sshd服务器,并拥有X11的完全控制权,这意味着它可以对其他显示X11的客户端进行修改。该模式下的客户端,也可以通过为ssh命令配置-X参数降低为不可信客户端。 通过为ssh命令指定参数 为ssh命令指定特定的参数会影响当前客户端的模式。这种方式会覆盖前面配置文件中的设置。

ssh_args ssh_mode

ssh disabled

ssh -X untrusted

ssh -Y trunsted

原因:许多客户端无法在untrusted模式下正常工作。