วิธีกำหนดค่า SVN / SSH ด้วย SSH บนพอร์ตที่ไม่ใช่มาตรฐาน


14

ฉันได้กำหนดค่า 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 ให้ใช้พอร์ต 20,000 ด้วย

ฉันใช้ Ubuntu 11.10

คำตอบ:


19

คุณสามารถกำหนด 'อุโมงค์' ใหม่ในการกำหนดค่าการโค่นล้ม ( ~/.subversion/config) ค้นหาส่วน[tunnels]นั้นและกำหนดสิ่งที่ชอบ:

[tunnels]
foo = ssh -p 20000

หลังจากนั้นคุณสามารถติดต่อกับพื้นที่เก็บข้อมูลของคุณผ่านทาง svn+foo://server.com/home/svn/proj1 proj1URL


นอกจากนี้ถ้าคุณต้องการที่จะแทนที่ค่าเริ่มต้นพอร์ตโปรโตคอลเพียงกำหนดsvn+ssh ssh = ssh -p 20000สิ่งนี้จะถือว่าคุณได้แก้ไข/etc/ssh/sshd_configบนเซิร์ฟเวอร์เพื่อให้Port 22Port 20000จะถูกแทนที่ด้วย
เมฆ

1
@Dogbert: มันไม่ทำงานเหมือนที่คุณพูด: ฉันพยายามssh = ssh -p 20000แล้วพยายามที่จะเช็คเอาท์svn+ssh://example.org/var/svn-repos/mydev/trunkแต่ก็ยังพยายามที่พอร์ต 22
rubo77

13

เมื่อใดก็ตามที่คุณต้องการเข้าถึงเซิร์ฟเวอร์ ssh บนพอร์ตที่ไม่ใช่ค่าเริ่มต้นหรือด้วยชื่อผู้ใช้อื่นคุณสามารถกำหนดนามแฝง~/.ssh/configได้

Host mysvn
HostName server.com
Port 20000
User jm

svn co svn+ssh://mysvn/home/svn/proj1จากนั้นเรียก


4

ถ้าด้วยเหตุผลบางอย่างคุณไม่สามารถแก้ไข ~/.subversion/configไฟล์ได้คุณสามารถระบุพอร์ตในบรรทัดคำสั่ง:

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

แต่คุณต้องทำตัวเลือกนี้ทุกครั้งที่คุณเรียกใช้svnคำสั่ง สิ่งนี้อาจเหมาะสมสำหรับตัวแทนการสร้าง


0

ในกรณีที่ไฟล์ ~ / .subversion / config ของคุณไม่ได้กำหนดช่องสัญญาณ ssh ไว้คุณสามารถแทนที่คำสั่ง ssh แบบต่อการโทรโดยใช้ตัวแปรสภาพแวดล้อม SVN_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 ในแฟ้มคดีการตั้งค่าที่จะมีความสำคัญ (ซึ่งค่อนข้างผิดปกติโดยปกติแล้วเป็นวิธีอื่น ๆ ตัวแปรสภาพแวดล้อมมักจะมีความสำคัญมากกว่าไฟล์กำหนดค่า)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.