]> source.dussan.org Git - jgit.git/commit
Ensure that ~ in ssh config is replaced before Jsch sees it 45/110345/1
authorThomas Wolf <thomas.wolf@paranor.ch>
Wed, 18 Oct 2017 20:45:36 +0000 (22:45 +0200)
committerThomas Wolf <thomas.wolf@paranor.ch>
Wed, 18 Oct 2017 20:45:36 +0000 (22:45 +0200)
commitadbf0935e105819f6b8f65325013b6def6205f18
tree52c819fcd0057e89581d48b425fd8150ef08bf6e
parent81801832892a211be534c1c0ccd382df6c77e003
Ensure that ~ in ssh config is replaced before Jsch sees it

Do tilde replacement for values from the ssh config file that are
file names in all cases to make sure that they are already replaced
when Jsch tries to get the values.

Previously, OpenSshConfig did tilde replacement only for the
IdentityFile in the JGit-facing "Host" interface and left the
replacement in the Jsch-facing "Config" interface to Jsch.

But on Windows the JGit notion of what should be used to replace the
tilde differs from Jsch's replacement. Jsch always replaces the tilde
by the value of the system property "user.home", whereas JGit also
considers some environment variables like %HOME%. This can lead to
rather surprising failures as in the case of bug 526175 where
%HOME% != user.home.

Prior to commit 9d24470 (i.e.,prior to JGit 4.9.0) this problem never
occurred because Jsch was completely unaware of the ssh config file
and all host and IdentityFile handling happened exclusively in JGit.

Bug: 526175
Change-Id: I1511699664ffea07cb58ed751cfdb79b15e3a99e
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/OpenSshConfigTest.java
org.eclipse.jgit/src/org/eclipse/jgit/transport/OpenSshConfig.java