subhra74 / snowflake

Graphical SFTP client and terminal emulator with helpful utilities
GNU General Public License v3.0
2.16k stars 231 forks source link

Unable to connect to server using openssh private key #50

Open yan0s opened 4 years ago

yan0s commented 4 years ago

I cannot connect using my private key:

snowflake.desktop[1513]: com.jcraft.jsch.JSchException: invalid privatekey: [B@3ae6f693
snowflake.desktop[1513]:         at com.jcraft.jsch.KeyPair.load(KeyPair.java:948)
snowflake.desktop[1513]:         at com.jcraft.jsch.KeyPair.load(KeyPair.java:561)
snowflake.desktop[1513]:         at com.jcraft.jsch.IdentityFile.newInstance(IdentityFile.java:40)
snowflake.desktop[1513]:         at com.jcraft.jsch.JSch.addIdentity(JSch.java:407)
snowflake.desktop[1513]:         at com.jcraft.jsch.JSch.addIdentity(JSch.java:367)
snowflake.desktop[1513]:         at snowflake.common.ssh.SshClient.connect(SshClient.java:62)
snowflake.desktop[1513]:         at snowflake.common.ssh.files.SshFileSystem.connect(SshFileSystem.java:75)
snowflake.desktop[1513]:         at snowflake.components.files.FileComponentHolder.getSshFileSystem(FileComponentHolder.java:306)
snowflake.desktop[1513]:         at snowflake.components.files.browser.ssh.SshFileBrowserView.lambda$render$1(SshFileBrowserView.java:163)
snowflake.desktop[1513]:         at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
snowflake.desktop[1513]:         at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
snowflake.desktop[1513]:         at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
snowflake.desktop[1513]:         at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
snowflake.desktop[1513]:         at java.base/java.lang.Thread.run(Unknown Source)

It's related to this post: https://stackoverflow.com/questions/53134212/invalid-privatekey-when-using-jsch

i5o commented 4 years ago

I can confirm that this is happening to me too. Selected my key under ~/.ssh/id_rsa

Exception caught in sftp file browser
com.jcraft.jsch.JSchException: invalid privatekey: [B@38c2c34d
    at com.jcraft.jsch.KeyPair.load(KeyPair.java:747)
    at com.jcraft.jsch.KeyPair.load(KeyPair.java:561)
    at com.jcraft.jsch.IdentityFile.newInstance(IdentityFile.java:40)
    at com.jcraft.jsch.JSch.addIdentity(JSch.java:407)
    at com.jcraft.jsch.JSch.addIdentity(JSch.java:367)
    at snowflake.common.ssh.SshClient.connect(SshClient.java:62)
    at snowflake.common.ssh.files.SshFileSystem.connect(SshFileSystem.java:75)
    at snowflake.common.ssh.files.SshFileSystem.ensureConnected(SshFileSystem.java:39)
    at snowflake.common.ssh.files.SshFileSystem.getHome(SshFileSystem.java:202)
    at snowflake.components.files.browser.ssh.SshFileBrowserView.lambda$render$1(SshFileBrowserView.java:163)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.base/java.lang.Thread.run(Unknown Source)
subhra74 commented 4 years ago

Thanks for reporting, will look into it

robertpartridge commented 4 years ago

I've had the same problems today with some of the servers I manage. I tested on one of my servers by changing to a different key from another server that worked and the problem resolved - the difference between the two keys being the length of the key. Perhaps a clue into the source of the problem?

Shivelight commented 4 years ago

Related issue dbeaver/dbeaver#5845, consider using/supporting SSHJ.

ivan-cc commented 4 years ago

Temporary solution:

private key generated by ssh-keygen starts with

-----BEGIN OPENSSH PRIVATE KEY----- and not -----BEGIN RSA PRIVATE KEY-----

To generate supported key add -m PEM to the end of your ssh-keygen command

e.g.

ssh-keygen -m PEM

This works with version 1.0.4

kdubdev commented 3 years ago

Can confirm this is still an issue to date. Existing OpenSSH private keys can be converted to RSA format using the following terminal command where id_rsa is the OpenSSH private key:

ssh-keygen -p -m PEM -f ~/.ssh/id_rsa

Recommend you back-up id_rsa before running the command as the file will be overwritten when converted. Remember to chmod 600 id_rsa or it will be ignored.

OpenSSH seems to be the new standard private key format. Any comment on when/if Snowflake will add support?

Thank you for this program.

pm25264 commented 1 year ago

Using Snowflakes for connecting to AWS EC2 unable to connect through .pem files for the new EC2 instances ( through Putty/WINSCP i can login to EC2 with same key). But can connect to Older EC2s with Snowflake with their .PEM files. Please help.

Devoscope commented 1 year ago

facing the same issue while I am trying to access the new aws instance, i 'm geting an error - Unable to connect to server.

Please look into this.

MindaugasBernatavicius commented 1 year ago

Holy molly, same issue still persists.