Począwszy od Emacsa 24.3, analoga starej multi:
składni została nałożona na nowoczesne tramp-default-proxies-alist
podejście, co oznacza, że możesz ponownie wykonywać wiele przeskoków bez wcześniejszej konfiguracji. Aby uzyskać szczegółowe informacje, zobacz:
C-hig (tramp) Ad-hoc multi-hops
RET
W nowej składni każdy „przeskok” jest oddzielony |
. Przykład w instrukcji:
C-xC-f /ssh:bird@bastion|ssh:you@remotehost:/path
RET
Który łączy się najpierw jako bird@bastion
, a stamtąd doyou@remotehost:/path
/ su: lub / sudo: na zdalnych hostach
Możesz również użyć tej składni, aby sudo / su do roota (lub oczywiście dowolnego innego użytkownika) na zdalnym hoście:
C-xC-f /ssh:you@remotehost|sudo:remotehost:/path/to/file
RET
Ważne : pamiętaj o jawnym podaniu nazwy hosta: sudo:remotehost:
zamiast sudo::
(patrz poniżej).
Ponieważ nadal używa mechanizmu proxy poniżej, tramp-default-proxies-alist
powinno teraz zawierać wartość("remotehost" "root" "/ssh:you@remotehost:")
Oznacza to, że serwer proxy /ssh:you@remotehost:
będzie używany za każdym razem, gdy zażądasz pliku jako root@remotehost
.
root
jest domyślnym użytkownikiem dla tych metod, ale możesz oczywiście zmienić na użytkownika innego niż root za pomocą:
C-xC-f /ssh:you@remotehost|sudo:them@remotehost:/path/to/file
RET
Zawsze jawnie określ nazwę zdalnego hosta
Prawdopodobnie jesteś przyzwyczajony do używania sudo::
lub su::
pomijania nazwy hosta. Jeśli przebywasz na hoście lokalnym, to nadal jest w porządku, ale jeśli przeskakujesz do zdalnego serwera, musisz określić nazwę hosta dla każdego przeskoku - nawet jeśli jest taka sama jak dla poprzedniego przeskoku. Zawsze używaj sudo:hostname:
lub su:hostname:
ze zdalnymi hostami.
Pułapka polega na tym, sudo::
że faktycznie wydaje się działać - jednak gdy to zrobisz, HOST dla wpisu dynamicznego serwera proxy będzie nazwą hosta, z którego pochodzisz, a nie hostem, z którym się łączyłeś. Nie tylko będzie to wyglądało na zagmatwane (ponieważ niewłaściwy host będzie wyświetlany w ścieżkach plików), ale będzie również oznaczać, że każda kolejna próba użycia sudo::
na twoim lokalnym hoście będzie zamiast tego przekazywana do zdalnego serwera! (a serwer proxy prawdopodobnie również zostałby zablokowany, gdybyś zrobił to samo na drugim serwerze, powodując dalsze problemy).
Krótko mówiąc, nie używaj ::
podczas wykonywania wielu przeskoków!