SSH Plugin for SCM Manager

Table of Content

About scm-ssh-plugin

The SSH Plugin for SCM Manager enables SSH access to Git repositories managed within SCM Manager. This is useful for applications which do not support Git over HTTP (e.g. SparkleShare version 0.9.7) or scenarios where authentication using public keys is preferred over password authentication.

Please note that the plugin has to use private APIs of SCM Manager in order to do its job. This means that it is incompatible with some other plugins and installing these plugins side-by-side with the SSH plugin will break SCM manager (see this bug report).


Setting up the SSH plugin is quite simple. Just download the plugin file and add it using plugin manager in the SCM administrative web-interface.

After restarting SCM manager, you can configure the SSH plugin in the general configuration panel of SCM. The SSH keys accepted for a specific user can be configured by the administrator in the user panel or by the respective user herself using the "Edit my SSH Keys" menu item.

For connecting to a Git repository over SSH, use a URL like ssh://<username>@<server>:<port>/git/<repository>. The port is optional, if the SSH server is running on port 22. However, for most operating systems binding to ports below 1024 requires special privileges, so you might need to setup the Java servlet container in a special way, if you want to use the standard port. By default the SSH plugin uses port 8022.

When using public key authentication, the generic git username can be used as an alternative to the actual username. In this case, the first user that has the public key authorized is used. Typically, SSH keys are personal, so the same key should not be authorized for more than one user. In order to check which user is the right one, the authentication code has to iterate over all users that are present in the local user list, which can have performance implications. For this reason, this behavior can be disabled by setting the com.aquenos.scm.ssh.auth.PublicKeyAuthenticator.disableGlobalGitUser system property to true. It is also disabled when a user with the username git actually exists. Support for authentication with the generic git username was introduced with version 2.0.0 of the plugin.

If you run the SSH plugin in parallel to another SSH daemon and use the same IP address or hostname for connections, you should make sure that the same SSH host keys are used. Otherwise the SSH client will complain about mismatching host keys.


This program and the accompanying materials are made available under the terms of the Eclipse Public License. By downloading the software you agree to be bound the the terms of this license.

The scm-ssh-plugin uses the SSH server implementation from the Apache Mina project.

Release 2.0.0 (August 17th, 2016):
This version of the plugin is compatible with SCM manager 1.44 through 1.49 (and most likely newer versions). It introduces support for ECDSA keys and using the generic git username with key authentication. This version of the plugin needs Java 7 and is not compatible with Java 6 any longer.

Release 1.0.0 (November 14th, 2012):
First public release of scm-ssh-plugin, intended for use with SCM Manager release 1.22.


You can contact the author of this software, Sebastian Marsching, at scm-ssh-plugin-maintainer removethis <at> oss <dot> aquenos <dot> com.

Visit other projects on

Imprint | Privacy Policy

© 2012 aquenos GmbH