aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md12
-rw-r--r--app/src/main/java/com/trilead/ssh2/transport/KexManager.java5
-rw-r--r--app/src/main/java/org/connectbot/transport/SSH.java6
3 files changed, 20 insertions, 3 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..ddfccf0
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,12 @@
+# Change Log
+All notable changes to this project will be documented in this file.
+This project adheres to [Semantic Versioning](http://semver.org/).
+
+## [Unreleased][unreleased]
+### Fixed
+- Key exchange and host key algorithm preference order was not being
+ respected.
+
+### Added
+- More context is given for failures to connect via SSH which should
+ reveal why a host might be incompatible with ConnectBot.
diff --git a/app/src/main/java/com/trilead/ssh2/transport/KexManager.java b/app/src/main/java/com/trilead/ssh2/transport/KexManager.java
index 2476b76..acf2812 100644
--- a/app/src/main/java/com/trilead/ssh2/transport/KexManager.java
+++ b/app/src/main/java/com/trilead/ssh2/transport/KexManager.java
@@ -8,6 +8,7 @@ import java.security.SecureRandom;
import java.security.interfaces.DSAPublicKey;
import java.security.interfaces.ECPublicKey;
import java.security.interfaces.RSAPublicKey;
+import java.util.LinkedHashSet;
import java.util.Set;
import java.util.TreeSet;
@@ -61,7 +62,7 @@ public class KexManager
supportsEc = keyFact != null;
}
- private static final Set<String> HOSTKEY_ALGS = new TreeSet<String>();
+ private static final Set<String> HOSTKEY_ALGS = new LinkedHashSet<String>();
static {
if (supportsEc) {
HOSTKEY_ALGS.add("ecdsa-sha2-nistp256");
@@ -72,7 +73,7 @@ public class KexManager
HOSTKEY_ALGS.add("ssh-dsa");
}
- private static final Set<String> KEX_ALGS = new TreeSet<String>();
+ private static final Set<String> KEX_ALGS = new LinkedHashSet<String>();
static {
if (supportsEc) {
KEX_ALGS.add("ecdh-sha2-nistp256");
diff --git a/app/src/main/java/org/connectbot/transport/SSH.java b/app/src/main/java/org/connectbot/transport/SSH.java
index 37f2e08..2a552a4 100644
--- a/app/src/main/java/org/connectbot/transport/SSH.java
+++ b/app/src/main/java/org/connectbot/transport/SSH.java
@@ -454,7 +454,11 @@ public class SSH extends AbsTransport implements ConnectionMonitor, InteractiveC
Log.e(TAG, "Problem in SSH connection thread during authentication", e);
// Display the reason in the text.
- bridge.outputLine(e.getCause().getMessage());
+ Throwable t = e.getCause();
+ do {
+ bridge.outputLine(t.getMessage());
+ t = t.getCause();
+ } while (t != null);
close();
onDisconnect();