jar vxf ganymed-ssh2-build210-sources.jar \
ch/ethz/ssh2/transport/KexManager.java
修改文件 KexManager.java
public static final String[] getDefaultKexAlgorithmList() {
return new String[] {
"diffie-hellman-group-exchange-sha1",
"diffie-hellman-group14-sha1"// ,
// "diffie-hellman-group1-sha1"
};
}
...
public static final void checkKexAlgorithmList(String[] algos)
...
if ("diffie-hellman-group14-sha1".equals(algos[i]))
continue;
// if ("diffie-hellman-group1-sha1".equals(algos[i]))
// continue;
...
2 回答
如果您无法控制服务器而是客户端上的库 .
以下可能是一种选择
获取库的来源ganymed-ssh2-build210-sources.jar
修改
ch/ethz/ssh2/transport/KexManager.java
不再支持diffie-hellman-group1-sha1
编译修改后的代码
将修补的库创建为
ganymed-ssh2-build210_1.jar
,并将其与客户端应用程序一起使用edit 查找逐步说明以验证上述内容 .
假设以下结构
choose a mirror for apache-sshd-1.6.0.tar.gz
ganymed-ssh2-build210.jar
ganymed-ssh2-build210-sources.jar
SshServerDemo.java
SshClientDemo.java
KexManager.java
KexManager.java
KexManager.java
in command line session ONE
in command line session TWO
在输出中仅报告
diffie-hellman-group1-sha1
产量
产量
在服务器日志上
这证明了带有 patched 库的SshClientDemo无法使用密钥交换算法
diffie-hellman-group1-sha1
连接到服务器(PoC仅支持此服务器) .您希望在服务器上而不是在客户端中更改允许的密码,否则任何人都可以轻松绕过此密码 .
检查答案:https://unix.stackexchange.com/questions/333728/ssh-how-to-disable-weak-ciphers