Bagaimana cara mengkonfigurasi SVN / SSH dengan SSH pada port non standar?

14

Saya telah mengonfigurasi SSH agar berada di port 20000. Ketika saya mencoba:

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

saya mendapat

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

Saya pikir saya perlu memberitahu SVN untuk menggunakan port 20000 juga?

Saya di Ubuntu 11.10

Jiew Meng
sumber

Jawaban:

19

Anda dapat menentukan 'terowongan' baru di konfigurasi Subversion Anda ( ~/.subversion/config). Temukan bagian di [tunnels]sana dan tentukan sesuatu seperti:

[tunnels]
foo = ssh -p 20000

Setelah itu Anda dapat menghubungi repositori Anda melalui URL svn+foo://server.com/home/svn/proj1 proj1.

kamu-punkt
sumber
Juga, jika Anda ingin mengganti svn+sshport protokol default , cukup tentukan ssh = ssh -p 20000. Ini mengasumsikan Anda telah dimodifikasi /etc/ssh/sshd_configpada server sehingga Port 22diganti dengan Port 20000.
Cloud
1
@ Logbert: tidak berfungsi seperti yang Anda katakan: Saya mencoba ssh = ssh -p 20000dan kemudian mencoba untuk checkout svn+ssh://example.org/var/svn-repos/mydev/trunktetapi ini masih mencoba pada port 22
rubo77
13

Setiap kali Anda perlu mengakses server ssh pada port non-default atau dengan nama pengguna yang berbeda, Anda dapat menentukan alias di ~/.ssh/config.

Host mysvn
HostName server.com
Port 20000
User jm

Kemudian jalankan svn co svn+ssh://mysvn/home/svn/proj1.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
4

Jika karena alasan tertentu Anda tidak dapat mengedit ~/.subversion/configfile, maka Anda dapat menentukan port di baris perintah:

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

tetapi Anda harus melakukan opsi ini setiap kali Anda menjalankan svnperintah. Ini mungkin masuk akal untuk agen bangunan.

swdev
sumber
0

Jika file ~ / .subversion / config Anda tidak memiliki ssh tunnel yang ditentukan, Anda dapat mengesampingkan perintah ssh pada basis per-panggilan menggunakan variabel lingkungan SVN_SSH

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

Sebagai contoh

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

Ini tidak akan berfungsi jika file ~ / .subversion / config Anda mendefinisikan ssh tunnel, dalam hal ini file config diutamakan. (Yang agak tidak biasa. Biasanya sebaliknya, variabel lingkungan biasanya didahulukan dari file konfigurasi)

Egor Duda
sumber