summaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit.ssh.apache.test
diff options
context:
space:
mode:
authorThomas Wolf <thomas.wolf@paranor.ch>2022-01-06 19:33:44 +0100
committerThomas Wolf <thomas.wolf@paranor.ch>2022-01-06 19:33:44 +0100
commit4c555f0742856bb21efcb2df53c7ceac921ffe80 (patch)
tree7e804a09d635d5c560f5527798bc09f959893751 /org.eclipse.jgit.ssh.apache.test
parent709087c582d2b6f4b1ab1ad304d61b53bb0c7301 (diff)
downloadjgit-4c555f0742856bb21efcb2df53c7ceac921ffe80.tar.gz
jgit-4c555f0742856bb21efcb2df53c7ceac921ffe80.zip
sshd: backport upstream fix for SSHD-1231
SSHD-1231[1] may lead to exceptions when trying to authenticate first with an RSA key that is rejected by the server. The upstream fix is a one-liner but unfortunately didn't make it into Apache MINA sshd 2.8.0. Incorporate the upstream fix in JGitPublicKeyAuthentication, and add a test case for this. [1] https://issues.apache.org/jira/browse/SSHD-1231 Bug: 577545 Change-Id: Ia744cd4aa569bccd937c855f3bb45c0116915bad Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
Diffstat (limited to 'org.eclipse.jgit.ssh.apache.test')
-rw-r--r--org.eclipse.jgit.ssh.apache.test/tst/org/eclipse/jgit/transport/sshd/ApacheSshTest.java26
1 files changed, 26 insertions, 0 deletions
diff --git a/org.eclipse.jgit.ssh.apache.test/tst/org/eclipse/jgit/transport/sshd/ApacheSshTest.java b/org.eclipse.jgit.ssh.apache.test/tst/org/eclipse/jgit/transport/sshd/ApacheSshTest.java
index ccaf98ced0..3d7c7651c1 100644
--- a/org.eclipse.jgit.ssh.apache.test/tst/org/eclipse/jgit/transport/sshd/ApacheSshTest.java
+++ b/org.eclipse.jgit.ssh.apache.test/tst/org/eclipse/jgit/transport/sshd/ApacheSshTest.java
@@ -107,6 +107,32 @@ public class ApacheSshTest extends SshTestBase {
"IdentityFile " + privateKey1.getAbsolutePath());
}
+ /**
+ * Test for SSHD-1231. If authentication is attempted first with an RSA key,
+ * which is rejected, and then with some other key type (here ed25519),
+ * authentication fails in bug SSHD-1231.
+ *
+ * @throws Exception
+ * on errors
+ * @see <a href=
+ * "https://issues.apache.org/jira/browse/SSHD-1231">SSHD-1231</a>
+ */
+ @Test
+ public void testWrongKeyFirst() throws Exception {
+ File userKey = new File(getTemporaryDirectory(), "userkey");
+ copyTestResource("id_ed25519", userKey);
+ File publicKey = new File(getTemporaryDirectory(), "userkey.pub");
+ copyTestResource("id_ed25519.pub", publicKey);
+ server.setTestUserPublicKey(publicKey.toPath());
+ cloneWith("ssh://git/doesntmatter", defaultCloneDir, null, //
+ "Host git", //
+ "HostName localhost", //
+ "Port " + testPort, //
+ "User " + TEST_USER, //
+ "IdentityFile " + privateKey1.getAbsolutePath(), // RSA
+ "IdentityFile " + userKey.getAbsolutePath());
+ }
+
@Test
public void testHashedKnownHosts() throws Exception {
assertTrue("Failed to delete known_hosts", knownHosts.delete());