Ubuntu 一般只默认安装openssh_client,需要对Ubuntu进行ssh需要安装openssh_server

最新版本openssh_server在ubuntu默认用7.2版本的,在7.2版本其官网声明已经Disabled diffie-hellman-group1-sha1 by default

如果还使用低版本的Poderosa之类的,默认还在用diffie-hellman-group1-sha1。

查看openssh_client允许的keyexchange方法可用 ssh -Q key

查看当前openssh_server允许的keyexchange方法可用 sshd -T | grep kex 查看server允许的keyexchange

可以选择升级Poderosa,或者降级安装openssh_client 6.6左右版本

如果降级后还不支持,可以进入修改 /etc/ssh/sshd_config

KexAlgorithms diffie-hellman-group1-sha1,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1

Ciphers 3des-cbc,blowfish-cbc,aes128-cbc,aes128-ctr,aes256-ctr

ssh-keygen -A 来重新生成所有钥匙

之后service ssh restart重启sshd

图像调整大小 由于单击缩放,您可以直接链接到大图像,但可以使其在页面上呈现得较小: ![logo](https://docsify.js.org/_media/icon.svg ':size=50x100') ![logo](https://docsify.js.org/_media/icon.svg ':size=100') <!-- Supports percentage --> ![logo](https://docsi Diff ie- Hellman 密钥交换算法 了解 Diff ie- Hellman 密钥交换方法和步骤 VC++环境下,编程实现 Diff ie- Hellman 密钥交换方法和步骤 一、 采用 Diff ie- Hellman 密钥交换方法,编程实现两个用户的密钥交换 按照步骤,先指定一个本原根,然后分别求密钥。 Open SSH 7.0 弃用了 diff ie- hellman - group 1- sha1 密钥算法,因为它很弱并且在所谓的 Logjam 攻击的理论范围内。在这种情况下,客户端和服务器无法就密钥交换算法达成一致,因为服务器只提供了一种方法 diff ie- hellman - group 1- sha1 。如果客户端和服务器无法就一组相互的参数达成一致,则连接将失败。将Open ssh 版本升级到8.5后,操作系统出现如下告警,无法通过堡垒机进行远程连接。 1, ssh -keygen -t rsa 2,cat . ssh /id_rsa.pub ssh -rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCopceE9x0Qn0eQyqQkeSb2fOxA2zCm3tZGtlL9bEOUWuYQd27JQMAkmesI+1BZNZAXThmX82OLKw8mexCIcI+o+jZZBcj6dbcw6xnSIFyqtYvFV4GQ+0NkfxcFvZ6fQaL0e03X5gbWqLYdmVm+T6OnxV+aM1xhIQFVcEBUi15hucnA7. ubuntu16.04, ssh 加密默认只 支持 sha2算法,不 支持 diff ie- hellman - group 1- sha1 加密方式。而大部分sftp软件连接目前还在使用 sha1 算法,所以需要添加 支持 。 修改/etc/ ssh / ssh d_config,添加: #Legacy changesK exAl gor ithm s diff ie- hellman - group 1- sha1 ,curve25519-sha256@... 由于连接sftp所用jar最终会使用jsch的包。然而jsch的包会有各种版本 问题 。来梳理一下, 根源是jdk1.6 支持 的加密算法较少(jdk8 支持 了大多数加密算法),而open SSH 8.0默认屏蔽了jdk1.6 支持 的加密算法,如: diff ie- hellman - group 1- sha1 等。open SSH 7的版本能 支持 1.6的算法。 首先查看主机 ssh 命令,执行 ssh -v Ciphers 指定 SSH -2 允许使用的加密算法。多个算法之间使用逗号分隔。可以使用的算法如下: “aes128-cbc”, “aes192-cbc”, “aes256-cbc”, “aes128-ctr”, “aes192-ctr”, “aes256-ctr”, “3des-cbc”, “arcfour128”, “arcfour256”, “arcfour”, “blowfish-cbc”, “cast128-cbc” 默认值是可以使用上述所有算法。 指定允许在 SSH -2 中使用哪些消息 SecureCrt登录遇到这个 问题 No compatible key-exchange method. The server supports these methods: diff ie- hellman 。 解决方法: Options > Session Options, 参考: https://forums.vandyke.com/showthread.php?p=48086 首先我的第一印象就是服务器启用了密钥登录而不是密码登录,所以我重新部署服务器,发现并没有密钥登录的操作,而且密钥没有创新,又想着是不是服务器的防火墙端口未开,因为购买时是新的账号,网络的私有环境是新建的,所以开始排查这个错误,结果端口设置完成后,还是错误提示,没办法了,只能百度,结果也是一无所获,百度的教程都是无效的,什么修改“/etc/ ssh / ssh d_config”告诉你没卵用,而且 ssh 文件夹内不要乱改,别为什么,我是不会告诉你,我按照百度的教程修改之后导致服务器出错,重装了 linux 系统的糗事。