Trong trường hợp khó khăn, hãy chắc chắn thử nghiệm các lệnh ssh và cvs trên dòng lệnh trước khi đi đến điểm thêm cấu hình cho LocalForward trong tệp cấu hình . Chỉnh sửa tập tin cấu hình sớm có thể làm nản lòng nếu bất cứ điều gì về một thiết lập cụ thể hơi khác so với môi trường của người trả lời.
Một trong những vấn đề đầu tiên người ta có thể gặp là rất hiếm, nhưng rất quan trọng. Điều tối quan trọng là phải biết vị trí chính xác của tệp cấu hình . Trong hầu hết các trường hợp, vị trí chính xác là ~ / .ssh / config / $ {HOME} /. Ssh / config , nhưng, đôi khi không phải vậy. Vị trí tệp cấu hình chính xác được yêu cầu để giải quyết vấn đề này ngay cả khi thử nghiệm từ một dòng lệnh. Xem thêm: ssh không còn sử dụng ~ / .ssh / config
Ngoài ra còn có khả năng chạy afoul của các vấn đề quyền. Thông thường, an toàn trong quá trình khắc phục sự cố để đặt cả thư mục .ssh và tệp cấu hình chỉ đọc cho người dùng (ví dụ: chmod 600 ) mặc dù không nhất thiết phải có các quyền khá chặt chẽ. Trong mọi trường hợp, thư mục và tệp không được ghi bởi người dùng khác.
Ngoài ra còn có vấn đề thiết lập CVS_RSH đúng cách. Ngay cả khi môi trường ssh được thiết lập đúng, lệnh cvs cuối cùng sẽ thất bại với một thông báo rất không có ích nếu CVS_RSH không được chuẩn bị đúng cách.
CVS_RSH=ssh; export CVS_RSH
Nếu không có CVS_RSH , lệnh cvs có thể quay trở lại:
-l: bad option(s)
cvs [... aborted]: end of file from server (consult above messages if any)
Không cần thiết phải mở hai vỏ để làm việc với đường hầm. Câu trả lời của innaM nói rằng hãy thiết lập đường hầm với:
ssh B
Điều này để lại cho bạn một vỏ mở trên B, và không phải trên máy trạm cục bộ. Không cần thiết phải mở vỏ trên B. Người ta có thể hoạt động hoàn toàn trong một vỏ bằng cách thiết lập đường hầm với:
ssh -fN B
Lệnh này để lại cho bạn tại dấu nhắc hệ thống cục bộ chứ không phải tại dấu nhắc B. Thông báo trước là trong trường hợp của ssh B , có thể phá bỏ việc chuyển tiếp bằng cách đăng xuất khỏi B , trong khi đó trong trường hợp của ssh -fN B , quá trình ssh nằm trong nền và phải bị giết bởi các phương tiện khác xuống giao nhận.
Khi nhiều hệ thống yêu cầu số cổng thay thế, việc thêm tùy chọn Cổng vào phần Máy chủ cấu hình áp dụng là khả thi.
Lưu ý rằng tệp cấu hình có thể chỉ định Người dùng trong phần Máy chủ khi tên người dùng khác nhau tùy theo hệ thống.
Một cạm bẫy tiềm năng khác có thể xảy ra trong trường hợp tên người dùng được chỉ định không chính xác. Mặc dù thường đúng và đúng khi chỉ định tên người dùng hệ thống là tên người dùng @ tên máy chủ , KHÔNG sử dụng ký hiệu này trong tệp cấu hình hoặc trong tham số ssh -L . Ví dụ, điều này sẽ trở nên sai lầm khủng khiếp và có thể rất khó để làm sáng tỏ:
ssh -L 2200:Auser@A:22 Buser@B
(Điều này không bao giờ cần sử dụng CVS vì Auser @ được chỉ định với cvs -d: ext: Auser @ A: / path / to / repository .)
Mặc dù việc chỉ định Buser @ B là hoàn toàn chấp nhận được , Auser @ không được chỉ định theo cách này trên dòng lệnh hoặc trong tệp cấu hình . Một vấn đề lệnh cvs với một lệnh không chính xác như thế này có thể trả về một cái gì đó như:
ssh_exchange_identification: read: Connection reset by peer
cvs [checkout aborted]: end of file from server (consult above messages if any)
Việc gỡ lỗi có thể khó khăn và có thể dẫn đến các thông báo không thể giải thích khác như:
SSH Tunnel: channel 3: open failed: administratively prohibited
Vấn đề là khi được sử dụng với -L hoặc LocalForward , Auser @ trở thành một phần của tên máy chủ (hoặc địa chỉ IP) để nó không phân giải thành địa chỉ IP dự kiến.
ssh Btunnel
chứ không phải trên mỗissh B
. mặt khác +1.