Kể từ Emacs 24.3, một multi:
cú pháp tương tự của cú pháp cũ đã được xếp lớp trên tramp-default-proxies-alist
phương pháp tiếp cận hiện đại , có nghĩa là bạn có thể một lần nữa thực hiện nhiều bước nhảy mà không cần bất kỳ cấu hình trước nào. Để biết chi tiết, hãy xem:
C-hig (tramp) Ad-hoc multi-hops
RET
Với cú pháp mới, mỗi 'hop' được phân tách bằng |
. Ví dụ trong sách hướng dẫn là:
C-xC-f /ssh:bird@bastion|ssh:you@remotehost:/path
RET
Đầu tiên kết nối với tư cách là bird@bastion
, và từ đó đếnyou@remotehost:/path
/ su: hoặc / sudo: trên máy chủ từ xa
Bạn cũng có thể sử dụng cú pháp này để sudo / su root (hoặc tất nhiên là bất kỳ người dùng nào khác) trên máy chủ từ xa:
C-xC-f /ssh:you@remotehost|sudo:remotehost:/path/to/file
RET
Quan trọng : hãy đảm bảo chỉ định tên máy chủ một cách rõ ràng: sudo:remotehost:
thay vì sudo::
(xem bên dưới).
Vì điều này vẫn sử dụng cơ chế proxy bên dưới, tramp-default-proxies-alist
bây giờ sẽ bao gồm giá trị("remotehost" "root" "/ssh:you@remotehost:")
Có nghĩa là proxy /ssh:you@remotehost:
sẽ được sử dụng bất cứ khi nào bạn yêu cầu một tệp như root@remotehost
.
root
là người dùng mặc định cho các phương pháp này, nhưng tất nhiên bạn cũng có thể thay đổi thành người dùng không phải root với:
C-xC-f /ssh:you@remotehost|sudo:them@remotehost:/path/to/file
RET
Luôn chỉ định rõ ràng tên máy chủ từ xa
Có thể bạn đã quen với việc sử dụng sudo::
hoặc su::
bỏ qua tên máy chủ. Nếu bạn đang ở trên localhost thì điều này vẫn ổn, nhưng nếu bạn đang chuyển đến một máy chủ từ xa thì bạn phải chỉ định tên máy chủ cho mỗi bước nhảy - ngay cả khi nó giống với bước nhảy trước đó. Luôn sử dụng sudo:hostname:
hoặc su:hostname:
với máy chủ từ xa.
Cái bẫy ở đây là sudo::
không thực sự xuất hiện để làm việc - tuy nhiên khi bạn làm điều đó HOST cho mục proxy năng động sẽ là tên máy bạn có nguồn gốc từ chứ không phải là máy chủ mà bạn kết nối tới. Điều này sẽ không chỉ trông khó hiểu (vì máy chủ lưu trữ sai sẽ được hiển thị trong đường dẫn tệp), mà còn có nghĩa là bất kỳ nỗ lực tiếp theo nào để sử dụng sudo::
trên máy chủ cục bộ của bạn thay vào đó sẽ được ủy quyền cho máy chủ từ xa! (và proxy có lẽ cũng sẽ bị che khuất nếu bạn làm điều tương tự trên máy chủ thứ hai, gây ra các vấn đề khác).
Tóm lại, không sử dụng ::
khi bạn đa hop!