mirror of
https://github.com/jenkinsci/jenkins.git
synced 2026-10-26 19:15:09 +00:00
fix: Search for ECDSA and Ed25519 keys in default SSH key locations (#26954)
Search for ECDSA and Ed25519 keys in default SSH key locations Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
33e9ba24ca
commit
f428d0626a
4 files changed
+35
-2
No files matched your search
@@ -75,7 +75,7 @@ public class PrivateKeyProvider {
|
||||
/**
|
||||
* Read keys from default keyFiles
|
||||
*
|
||||
* {@code .ssh/id_rsa}, {@code .ssh/id_dsa} and {@code .ssh/identity}.
|
||||
* {@code .ssh/id_rsa}, {@code .ssh/id_ecdsa}, {@code .ssh/id_ed25519}, {@code .ssh/id_dsa} and {@code .ssh/identity}.
|
||||
*
|
||||
* @return true if some key was read successfully.
|
||||
*/
|
||||
@@ -83,7 +83,7 @@ public class PrivateKeyProvider {
|
||||
final File home = new File(System.getProperty("user.home"));
|
||||
|
||||
boolean read = false;
|
||||
for (String path : new String[] {".ssh/id_rsa", ".ssh/id_dsa", ".ssh/identity"}) {
|
||||
for (String path : new String[] {".ssh/id_rsa", ".ssh/id_ecdsa", ".ssh/id_ed25519", ".ssh/id_dsa", ".ssh/identity"}) {
|
||||
final File key = new File(home, path);
|
||||
if (!key.exists()) continue;
|
||||
|
||||
|
||||
@@ -142,4 +142,22 @@ class PrivateKeyProviderTest {
|
||||
String password = "password";
|
||||
assertThrows(IllegalArgumentException.class, () -> PrivateKeyProvider.loadKey(file, password));
|
||||
}
|
||||
|
||||
/**
|
||||
key command: ssh-keygen -t ecdsa -b 256 -N "" -C "" -f ecdsa
|
||||
*/
|
||||
@Test
|
||||
void loadKeyECDSA() throws IOException, GeneralSecurityException {
|
||||
File file = resourceAsFile("ecdsa");
|
||||
assertKeyPairNotNull(file, null);
|
||||
}
|
||||
|
||||
/**
|
||||
key command: ssh-keygen -t ed25519 -N "" -C "" -f ed25519
|
||||
*/
|
||||
@Test
|
||||
void loadKeyED25519() throws IOException, GeneralSecurityException {
|
||||
File file = resourceAsFile("ed25519");
|
||||
assertKeyPairNotNull(file, null);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
-----BEGIN OPENSSH PRIVATE KEY-----
|
||||
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAaAAAABNlY2RzYS
|
||||
1zaGEyLW5pc3RwMjU2AAAACG5pc3RwMjU2AAAAQQSmYgxT7E9XwGYmr8cd++EvpaNX3e1/
|
||||
T5w30hcO7xNk4n7xDsfZk8jOvg1ZbsfItBB5yjwRy7QTyXt/2ankp/E7AAAAoG6/A51uvw
|
||||
OdAAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKZiDFPsT1fAZiav
|
||||
xx374S+lo1fd7X9PnDfSFw7vE2TifvEOx9mTyM6+DVlux8i0EHnKPBHLtBPJe3/ZqeSn8T
|
||||
sAAAAhAJgBcc/Ez07nhpmLlsHhySD5zFeW/mHizkk/CIrvjkqSAAAAAAECAwQFBgc=
|
||||
-----END OPENSSH PRIVATE KEY-----
|
||||
@@ -0,0 +1,7 @@
|
||||
-----BEGIN OPENSSH PRIVATE KEY-----
|
||||
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
|
||||
QyNTUxOQAAACD6KfM1gIePqB5IPHvD0vjniUUYE6hb6c6GsxVrPZg4ngAAAIiLNylbizcp
|
||||
WwAAAAtzc2gtZWQyNTUxOQAAACD6KfM1gIePqB5IPHvD0vjniUUYE6hb6c6GsxVrPZg4ng
|
||||
AAAEAA/Q+bSWkxT9WZacetaaN/KBJvrDRlHOuxKQghG49hKvop8zWAh4+oHkg8e8PS+OeJ
|
||||
RRgTqFvpzoazFWs9mDieAAAAAAECAwQF
|
||||
-----END OPENSSH PRIVATE KEY-----
|
||||
Reference in new issue
Block a user