hierynomus / sshj

ssh, scp and sftp for java
Apache License 2.0
2.49k stars 600 forks source link

et.schmizz.sshj.userauth.UserAuthException: Exhausted available authentication methods #428

Open lpb78 opened 6 years ago

lpb78 commented 6 years ago

Hi, Let me explain my problem ! I am trying to authenticate using rsa keys & passphrase

I'm using sshj 0.23.0 & bc 1.59

Let me know if I do something wrong !!

Thanks !

Code used:

privateKey = readFile("../clef/id_rsa"); publicKey = readFile("../clef/id_rsa.pub"); passphrase = readFile("../clef/passphrase"); System.out.println("privateKey = " + privateKey); System.out.println("publicKey = " + publicKey); System.out.println("passphrase = " + passphrase);

OpenSSHKeyFile key; key = new OpenSSHKeyFile(); key.init(new File("../clef/id_rsa"),new StaticPasswordFinder(passphrase)); try { System.out.println("Authentificate with user & passphrase" + user + " (key)"); ssh.authPublickey(user, key); System.out.println("Authentificate with user & passphrase" + user + " (key) DONE "); }
catch (UserAuthException e) { System.out.println(e.getMessage()); e.printStackTrace(); }

And the output log



privateKey = -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,734464E5476E57E6

J4dcVV3tp56KM/4zDc2ypNhewRKGEo9KPV1Qhm+5fpFehBGDIitlZQHtOnr6QipC creSKmXvreEFVxg1E1BccoyCqZiU+atd9vHUj0DTYZ5zqsrg4cf66RJ9lwz60tWE RLlbrkzXQCOJaPb2K9qr/m+222eVxulUijL+DjqV4eE32Se+43fRnTumBnnKoog1 YyeqaGWw3IvTfFUu729tqzqKNBgQrmRo057qqj2EJO6c5k9wEhlzE5Cl9JL+VLdM mx6S5yr02UDqycbhhUKviRETHbUcf7IZeLzUmSOmoWYqj7klf3oWk+sQ6sNCTtaZ dvQWnCOrwbCDR8YaMOimdFgWPelrfWOQJR2xJ9xaHxCa5O6MgPDgWXz/3WUbFpau PMUChuFwueTLXbg1bD6eiQdOGAzw9cu43YSnhOuMkjqSvF/h6/EtQuoWTdQTtn4H fBGIgBK6W4lKl7fGyoGtqCC+zqXU+7Qozlflfraz1s7mxSemoiqdxiYHRzpdN3Ny +R4cUr4OZxPb5DQs2VJaJoCVUr0MylVhs/XjmiB7lkLoKPvsvLqTH+9JTl01ktTi sgdNR0SIG7KamJlebecPhiVVIfCLQwt2u6v2FJoOlVfzS5j9Sy/eT2kalAjy1SeW IVvINHln1jK3UUZInKSf/KgFzbYW9nIy6b17GFHfxJ54jgNDKZ1bNhsYAaNcJX6W HhprLjEJzOUMhCnUDTOm6mzrE24l9LX87+J5my6Y2sVxPudzWBxoPxn1FmwQK6F5 dRUAqQxd+iLWkD1nztvx8AdYafNy7b3LW9NymYYDorj7aadyz1rhMC29oJ6yUeUw UI0+YaFce9YB7YUsN8CY17M1m83f0Jzb8FxKsYP8myvz2MDroa2tuywxgPSKuUfK zpe//Ap7NeibxufYS2i3dLOYnwSmLr6Sk9dz3FoQsTb+Lbg0yAVH7NQOU53iJQxL qLhCwftVYT+4fBkxFXW5viwoVmmSvPlIHo4kkCZLwSDxnGZWJjTlJGRCNPqzfCH9 WTrg4mxZVBmNG97SUoKJBMPmWfrRA7xY12+66Uuy0+VD5OIZGDagWEOFTMJqdyEn CBRZGn8FXGTbKpHi83J2hudf3KZgvvu3iynTElcCvoswUSAcs1PaMee3q4JJbmwU LOeVShFyd4hT+1I0zEPBtBZ9E2O2t92xB5EUPKfS/OULUP5EUhD4gR0tnmejW1Bv wiZdtZhWFtuJFG6wGBKGOxDnyN3wa8frmg/dZRJ+wUUswnGBj89RZbtGemHxX1ko fIY5KCVlBtRSrl65b68KHcGuhHlypJtHfiEZ0yF7O9+z6AxLUwjvST2rgPbl6A41 XfRX8EwyFzz9A1fMh2FU1JcY5eSWmfhIdY5BMZQP7g2leFRyoJGxQUmjjSlzGV8k 0pjoD6/wa//nETpUkKaYL0HofhJ4dUNxT4xAeEtw1iFU2xFryH5uYDoCiF39IDdN JxKnfnt9LSqYSHuGuYvkMKd7AekbSvIVOO+7bSyDg4KYXOQlm1jc8aXJwPUtIWKW jHURWXp55ABZY7yEv4N5rBwvYUMbdsd6K34RzIqIzeLP5s5+khzhqw== -----END RSA PRIVATE KEY-----

publicKey = ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEA4qA6GqQmf4Xoq5Mm/3UBhQ8RARxB0w7eitivaqvPJHqQknHHEaz/7bEgFjKfNTmTy08aRGmoIe5Wlp/meoBzSM+JodtEbYQSjWhfWtuvU6sXw+TlK2kv8Exdh8DSbRfH6tPg+vFvkTFF2pC+pXY8FCcmPcPOHs4Pjm0kkJ5bSZTkJInlTXHJlQWJQl85N5Ka7OVJaCAnQnyO7ogyVl/C/JOmlBDsST1cf2iMYlVrvH1CVyLEasEYdCmfRQlUvp8aIGa2+0R2jUcDmvME1MG03S8eaxJeb8demHmPD0f0cIPhMLLixvabAPyEpWM6ZRECVd2pR0jPO+LNanlWtp5Tow==

passphrase = 1p@ssw0rd

Authentificate with user & passphrasedune (key) [main] DEBUG net.schmizz.concurrent.Promise - Setting <> to null [main] DEBUG net.schmizz.sshj.transport.TransportImpl - Sending SSH_MSG_SERVICE_REQUEST for ssh-userauth [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <> [reader] DEBUG net.schmizz.concurrent.Promise - Setting <> to SOME [main] DEBUG net.schmizz.sshj.transport.TransportImpl - Setting active service to ssh-userauth [main] DEBUG net.schmizz.concurrent.Promise - Setting <> to null [main] DEBUG net.schmizz.sshj.userauth.UserAuthImpl - Trying publickey auth... [main] DEBUG net.schmizz.sshj.userauth.method.AuthPublickey - Attempting authentication using PKCS8KeyFile{resource=[PrivateKeyFileResource] D:\PLATFORM_INSTALLER\test_sshj..\clef\id_rsa} [main] DEBUG net.schmizz.concurrent.Promise - Awaiting <> [reader] DEBUG net.schmizz.sshj.userauth.UserAuthImpl - Asking publickey method to handle USERAUTH_60 packet [reader] DEBUG net.schmizz.sshj.userauth.method.AuthPublickey - Key acceptable, sending signed request [reader] DEBUG net.schmizz.sshj.userauth.method.AuthPublickey - Attempting authentication using PKCS8KeyFile{resource=[PrivateKeyFileResource] D:\PLATFORM_INSTALLER\test_sshj..\clef\id_rsa} [main] ERROR net.schmizz.concurrent.Promise - <> woke to: net.schmizz.sshj.userauth.UserAuthException: Problem getting private key from PKCS8KeyFile{resource=[PrivateKeyFileResource] D:\PLATFORM_INSTALLER\test_sshj..\clef\id_rsa} Exhausted available authentication methods net.schmizz.sshj.userauth.UserAuthException: Exhausted available authentication methods at net.schmizz.sshj.SSHClient.auth(SSHClient.java:231) at net.schmizz.sshj.SSHClient.authPublickey(SSHClient.java:346) at net.schmizz.sshj.SSHClient.authPublickey(SSHClient.java:365) at jobExecution.main(jobExecution.java:156) Caused by: net.schmizz.sshj.userauth.UserAuthException: Problem getting private key from PKCS8KeyFile{resource=[PrivateKeyFileResource] D:\PLATFORM_INSTALLER\test_sshj..\clef\id_rsa} at net.schmizz.sshj.userauth.method.KeyedAuthMethod.putSig(KeyedAuthMethod.java:61) at net.schmizz.sshj.userauth.method.AuthPublickey.sendSignedReq(AuthPublickey.java:74) at net.schmizz.sshj.userauth.method.AuthPublickey.handle(AuthPublickey.java:45) at net.schmizz.sshj.userauth.UserAuthImpl.handle(UserAuthImpl.java:142) at net.schmizz.sshj.transport.TransportImpl.handle(TransportImpl.java:500) at net.schmizz.sshj.transport.Decoder.decode(Decoder.java:102) at net.schmizz.sshj.transport.Decoder.received(Decoder.java:170) at net.schmizz.sshj.transport.Reader.run(Reader.java:59) Caused by: org.bouncycastle.openssl.EncryptionException: exception using cipher - please check password and data. at org.bouncycastle.openssl.jcajce.PEMUtilities.crypt(Unknown Source) at org.bouncycastle.openssl.jcajce.JcePEMDecryptorProviderBuilder$1$1.decrypt(Unknown Source) at org.bouncycastle.openssl.PEMEncryptedKeyPair.decryptKeyPair(Unknown Source) at net.schmizz.sshj.userauth.keyprovider.PKCS8KeyFile.readKeyPair(PKCS8KeyFile.java:73) at net.schmizz.sshj.userauth.keyprovider.BaseFileKeyProvider.getPrivate(BaseFileKeyProvider.java:75) at net.schmizz.sshj.userauth.method.KeyedAuthMethod.putSig(KeyedAuthMethod.java:59) ... 7 more Caused by: javax.crypto.BadPaddingException: pad block corrupted at org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher$BufferedGenericBlockCipher.doFinal(Unknown Source) at org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher.engineDoFinal(Unknown Source) at javax.crypto.Cipher.doFinal(Cipher.java:2164) ... 13 more

hierynomus commented 6 years ago

It seems that bouncycastle claims your private key is malformed (pad block corrupted). I'd have to look into that.