非標準ポートでSSHを使用してSVN / SSHを設定するには?

非標準ポートでSSHを使用してSVN / SSHを設定するには?

SSHをポート20000として設定しました。私が試したとき:

svn co svn+ssh://server.com:20000/home/svn/proj1 proj1 --username jm

わかりました。

svn: To better debug SSH connection problems, remove the -q option
from 'ssh' in the [tunnels] section of your Subversion configuration
file. svn: Network connection closed unexpectedly

SVNにポート20000を使用するように指示する必要がありますか?

Ubuntu 11.10を使用しています

答え1

Subversion設定で新しい「トンネル」()を定義できます~/.subversion/config。そのセクションを見つけて、[tunnels]次を定義します。

[tunnels]
foo = ssh -p 20000

その後、URLを介してリポジトリにアクセスできますsvn+foo://server.com/home/svn/proj1 proj1

答え2

デフォルト以外のポートまたは別のユーザー名を使用してSSHサーバーにアクセスする必要がある場合は、次のエイリアスを定義できます。~/.ssh/config

Host mysvn
HostName server.com
Port 20000
User jm

それからsvn co svn+ssh://mysvn/home/svn/proj1

答え3

何らかの理由で~/.subversion/configファイルを編集できない場合は、コマンドラインでポートを指定できます。

svn co svn+ssh://joe@myserver/myrepo/ --config-option="config:tunnels:ssh=ssh -p 20000"

ただし、svnこのオプションはコマンドが実行されるたびに実行する必要があります。これはエージェントの構築に適しています。

答え4

~/.subversion/config ファイルの場合確かにSSHトンネルが定義されました。 SVN_SSH環境変数を使用して、すべての呼び出しでSSHコマンドをオーバーライドできます。

SVN_SSH='ssh -p 20000' svn co svn+ssh://server.com/home/svn/proj1 proj1 --username jm

例えば

deo@fox:~$ SVN_SSH='ssh -v -p 20000' svn ls svn+ssh://svn/
OpenSSH_7.9p1 Debian-10, OpenSSL 1.1.1c  28 May 2019
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to svn [192.168.177.2] port 20000.
debug1: connect to address 192.168.177.2 port 20000: Connection refused
ssh: connect to host svn port 20000: Connection refused
svn: E170013: Unable to connect to a repository at URL 'svn+ssh://svn'
svn: E210002: To better debug SSH connection problems, remove the -q option from 'ssh' in the [tunnels] section of your Subversion configuration file.
svn: E210002: Network connection closed unexpectedly

~/.subversion/config ファイルの場合は機能しません。するSSHトンネルを定義します。この場合、構成ファイルが優先されます。 (これは非常に珍しい現象です。通常、その逆は真であり、環境変数は通常設定ファイルよりも優先されます。)

関連情報