Problem
Git Integration for Jira application SSH keys:
-
Must not be created using the OpenSSH format
-
Must be the private SSH key
-
Must use the supported certificate format: RSA
-
Must use the supported storage format: OpenSSL PEM
Diagnosis
Jira admins will see a message similar to the one below when adding the SSH key:
> _The key format is invalid. Please check your private key._
Full error (stack trace) available in the Manage Git Repositories wizard or in Jira logs /application-logs/atlassian-jira.log
:
Example Error:
com.bigbrassband.jira.git.exceptions.repository.InvalidPrivateKeyException: Private SSH key is invalid or empty
at com.bigbrassband.jira.git.services.ssh.KeyManagerImpl.needPassphrase(KeyManagerImpl.java:103)
at com.bigbrassband.jira.git.rest.wizard.WizardResource.validateRepoOrigin(WizardResource.java:104)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
...
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: com.jcraft.jsch.JSchException: invalid privatekey: [C@17h421rm
at com.jcraft.jsch.KeyPair.load(KeyPair.java:664)
at com.bigbrassband.jira.git.services.ssh.KeyManagerImpl.needPassphrase(KeyManagerImpl.java:99)
... 264 more
Cause
Jira admin has provided an SSH public key or an SSH private key with an incorrect format.
Solutions
-
Create a new SSH key:
On Linux and macOS:
Use the following command to create a certificate:
ssh-keygen -t rsa -b 4096 -m pem -C [email protected]
MacOS often incorrectly creates an OpenSSH format certificate. For more details, see information on this common problem.On Windows:
Download PuTTY and use PuTTYgen to generate an SSH key pair:
-
Set Type of key… to RSA.
-
Set Number of bits… to 4096.
-
Click Generate. Move mouse pointer on the blank area as instructed.
-
Follow screen instructions such as moving your mouse pointer on random locations on the blank area of the PuTTYgen dialog. Do this until the progress bar completely fills up and the SSH key pair is generated.
-
Entering a Passphrase for the generated key is optional but will ensure a more secure connection.
-
Save your generated public and private key to a file by clicking the respective options.
-
Copy the generated key. This is the public key that you will be using on the SSH configuration page of your git host.
-
For the private key, PuTTY creates a private key in its own “.ppk” format. Convert it to “.pem” via menu Conversions > Export OpenSSH key in PuTTYgen. Add/upload this file to Git Integration for Jira app > SSH Keys or when prompted on connecting SSH git repositories in Jira.
-
-
Create a new SSH key using RSA certificate format. See Solution #1.
-
Use OpenSSL PEM storage format. See Solution #1.
-
Provide the public SSH key to the SSH configuration of your git host.
-
Provide the private SSH key to the Git Integration for Jira app > SSH Keys or when prompted on connecting SSH git repositories in Jira.
If you still have a question – reach out to our Support Desk or email us at [email protected].
Related articles
Why don’t I see commits? (Git Integration for Cloud) (Git Integration for Jira Cloud)
Repositories missing from Azure DevOps (or VSTS) integration (Git Integration for Jira Cloud)
Licensing error – installCheck failed (Git Integration for Jira Cloud)
Why don’t I see the Create branch or pull request features? (Git Integration for Jira Cloud)
Connection error for self-hosted git servers (Git Integration for Jira Cloud)
SSH key file format is invalid (this page)
Error while reindexing – Java heap space / Object too large, rejecting the pack (Git Integration for Jira Cloud)
OAuth connection error or error 401 page with Azure DevOps integration (Git Integration for Jira Cloud)
OAuth connection error or error 401 page with Azure DevOps with Active Directory integration (Git Integration for Jira Cloud)
Empty list of repositories after integration of Azure Repos (Git Integration for Jira Cloud)