Làm cách nào để định cấu hình SVN / SSH với SSH trên cổng không chuẩn?


14

Tôi đã định cấu hình SSH ở cổng 20000. Khi tôi thử:

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

tôi có

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

Tôi nghĩ tôi cần bảo SVN sử dụng cổng 20000 chứ?

Tôi đang dùng Ubuntu 11.10

Câu trả lời:


19

Bạn có thể xác định một 'đường hầm' mới trong cấu hình Subversion ( ~/.subversion/config). Tìm phần [tunnels]đó và định nghĩa một cái gì đó như:

[tunnels]
foo = ssh -p 20000

Sau đó, bạn có thể liên hệ với kho lưu trữ của bạn thông qua URL svn+foo://server.com/home/svn/proj1 proj1.


Ngoài ra, nếu bạn muốn ghi đè svn+sshcổng của giao thức mặc định , chỉ cần xác định ssh = ssh -p 20000. Điều này giả định rằng bạn đã sửa đổi /etc/ssh/sshd_configtrên máy chủ để Port 22được thay thế bằng Port 20000.
Đám mây

1
@Dogbert: nó không hoạt động như bạn nói: Tôi đã thử ssh = ssh -p 20000và sau đó thử thanh toán svn+ssh://example.org/var/svn-repos/mydev/trunknhưng điều này vẫn cố gắng trên cổng 22
rubo77

13

Bất cứ khi nào bạn cần truy cập máy chủ ssh trên một cổng không mặc định hoặc với một tên người dùng khác, bạn có thể xác định bí danh ~/.ssh/config.

Host mysvn
HostName server.com
Port 20000
User jm

Sau đó chạy svn co svn+ssh://mysvn/home/svn/proj1.


4

Nếu vì lý do nào đó bạn không thể chỉnh sửa ~/.subversion/configtệp, thì bạn có thể chỉ định cổng trong dòng lệnh:

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

nhưng bạn phải thực hiện tùy chọn này mỗi khi bạn chạy svnlệnh. Điều này có thể có ý nghĩa cho một tác nhân xây dựng.


0

Trong trường hợp tệp ~ / .subversion / config của bạn không có đường hầm ssh được xác định, bạn có thể ghi đè lệnh ssh trên cơ sở mỗi cuộc gọi bằng biến môi trường SVN_SSH

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

Ví dụ

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

Điều này sẽ không hoạt động nếu tệp ~ / .subversion / config của bạn không xác định đường hầm ssh, trong trường hợp đó, tệp cấu hình được ưu tiên. (Điều này khá bất thường. Thông thường, theo cách khác, các biến môi trường thường được ưu tiên hơn các tệp cấu hình)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.