Ab Emacs 24.3 wurde ein Analogon der alten multi:
Syntax über den modernen tramp-default-proxies-alist
Ansatz gelegt, sodass Sie ohne vorherige Konfiguration wieder Multi-Hops ausführen können. Einzelheiten finden Sie unter:
C-hig (tramp) Ad-hoc multi-hops
RET
Bei der neuen Syntax wird jeder 'Hop' durch getrennt |
. Das Beispiel im Handbuch lautet:
C-xC-f /ssh:bird@bastion|ssh:you@remotehost:/path
RET
Welches verbindet sich erstens als bird@bastion
und von dort nachyou@remotehost:/path
/ su: oder / sudo: auf Remote-Hosts
Sie können diese Syntax auch verwenden, um sudo / su zu rooten (oder natürlich jeden anderen Benutzer) auf einem Remote-Host:
C-xC-f /ssh:you@remotehost|sudo:remotehost:/path/to/file
RET
Wichtig : Stellen Sie sicher, dass Sie den Hostnamen explizit angeben: sudo:remotehost:
anstatt sudo::
(siehe unten).
Da dies immer noch den darunter liegenden Proxy-Mechanismus verwendet, tramp-default-proxies-alist
sollte jetzt der Wert enthalten sein("remotehost" "root" "/ssh:you@remotehost:")
Dies bedeutet, dass der Proxy /ssh:you@remotehost:
immer dann verwendet wird, wenn Sie eine Datei als anfordern root@remotehost
.
root
ist der Standardbenutzer für diese Methoden, aber Sie können natürlich auch zu einem Nicht-Root-Benutzer wechseln mit:
C-xC-f /ssh:you@remotehost|sudo:them@remotehost:/path/to/file
RET
Geben Sie den Remote-Hostnamen immer explizit an
Sie sind wahrscheinlich daran gewöhnt, den Hostnamen zu verwenden sudo::
oder su::
wegzulassen. Wenn Sie auf dem lokalen Host bleiben, ist dies immer noch in Ordnung. Wenn Sie jedoch zu einem Remote-Server springen, müssen Sie den Hostnamen für jeden Hop angeben - auch wenn er mit dem vorherigen Hop identisch ist. Verwenden Sie immer sudo:hostname:
oder su:hostname:
mit Remote-Hosts.
Die Falle hier ist, dass sudo::
sie tatsächlich zu funktionieren scheint. Wenn Sie dies jedoch tun, ist der Host für den dynamischen Proxy-Eintrag der Hostname, von dem Sie stammen, und nicht der Host, mit dem Sie verbunden sind. Dies sieht nicht nur verwirrend aus (da der falsche Host in den Dateipfaden angezeigt wird), sondern bedeutet auch, dass jeder nachfolgende Versuch, ihn sudo::
auf Ihrem lokalen Host zu verwenden, stattdessen an den Remote-Server weitergeleitet wird! (und der Proxy wäre vermutlich auch überlastet, wenn Sie dasselbe auf einem zweiten Server tun würden, was weitere Probleme verursachen würde).
Kurz gesagt, nicht verwenden, ::
wenn Sie Multi-Hop!