JGit

Dependencies

SSH

The (optional) bundle org.eclipse.jgit.ssh.apache.agent newly also supports communicating with the SSH agent of Microsoft's port of OpenSSH, Win32-OpenSSH, via a Windows named pipe.

Bundle org.eclipse.jgit.ssh.apache fully implements the SSH configuration properties IdentityAgent and AddKeysToAgent.

JGit implements the newer SSH2 agent protocol; the older SSH1 protocol is not supported.

SSH Agent Support on Linux, OS X, BSD

On Linux, OS X, and BSD, the only agent communication mechanism supported is the usual communication via a Unix domain socket. This is the only protocol the OpenSSH SSH agent supports. A Unix domain socket appears as a special file in the file system; this file name is typically available in the environment variable SSH_AUTH_SOCK.

The SSH config IdentityAgent can be set to this socket filename to specify exactly which Unix domain socket to use, or it can be set to SSH_AUTH_SOCK to use the value from that environment variable. If IdentityAgent is not set at all, JGit uses SSH_AUTH_SOCK by default. If the variable is not set, no SSH agent will be used. IdentityAgent can also be set to none to not use any SSH agent.

SSH Agent Support on Windows

On Windows, two different agent communication mechanisms are supported:

Possible settings of IdentityAgent to select a particular transport are

The default transport on Windows if IdentityAgent is not set at all is the Pageant shared-memory transport. Environment variable SSH_AUTH_SOCK needs not be set for Pageant, and must not be set for Win32-OpenSSH.

Neither Pageant (as of version 0.76) nor Win32-OpenSSH (as of version 8.6) support the confirm or lifetime constraints for AddKeysToAgent. Do not use these configurations on Windows with these agents. gpg-agent apparently does support these settings.

To use gpg-agent, choose the Pageant shared memory communication, and run gpg-agent with option enable-putty-support.

Other Changes

The complete list of new features and bug fixes is available in the release notes.