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

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.


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.


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.


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)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.