Як і в Emacs 24.3, аналог старого multi:
синтаксису був шаруватий поверх сучасного tramp-default-proxies-alist
підходу, що означає, що ви можете знову виконувати мульти-хопи без будь-якої попередньої конфігурації. Детальніше див:
C-hig (tramp) Ad-hoc multi-hops
RET
У новому синтаксисі кожен 'хоп' відокремлюється |
. Приклад у посібнику:
C-xC-f /ssh:bird@bastion|ssh:you@remotehost:/path
RET
Що спочатку з'єднується як bird@bastion
, а звідти доyou@remotehost:/path
/ su: або / sudo: на віддалених хостах
Ви також можете використовувати цей синтаксис для sudo / su для кореневого (або, звичайно, будь-якого іншого користувача) на віддаленому хості:
C-xC-f /ssh:you@remotehost|sudo:remotehost:/path/to/file
RET
Важливо : обов'язково вкажіть ім'я хоста чітко: sudo:remotehost:
а не sudo::
(див. Нижче).
Оскільки це все ще використовує механізм проксі під ним, tramp-default-proxies-alist
тепер слід включати значення("remotehost" "root" "/ssh:you@remotehost:")
Це означає, що проксі /ssh:you@remotehost:
буде використовуватися, коли ви запитуєте файл як root@remotehost
.
root
є типовим користувачем для цих методів, але ви, звичайно, також можете перейти на некорінного користувача, використовуючи:
C-xC-f /ssh:you@remotehost|sudo:them@remotehost:/path/to/file
RET
Завжди чітко вказуйте ім’я віддаленого хоста
Ви, ймовірно, звикли використовувати sudo::
або su::
пропускати ім'я хоста або пропускати його. Якщо ви залишаєтесь на localhost, це все ще нормально, але якщо ви переходите на віддалений сервер, тоді ви повинні вказати ім'я хоста для кожного хопу - навіть якщо це те саме, що і для попереднього переходу. Завжди використовуйте sudo:hostname:
або su:hostname:
з віддаленими хостами.
Пастка тут полягає в тому, sudo::
що насправді це працює, однак, коли ви робите, що HOST для динамічного запису проксі буде ім'ям хоста, з якого ви походили, а не хостом, до якого ви підключились. Це не тільки виглядатиме заплутано (оскільки неправильний хост буде відображатися у шляхах до файлів), але також означатиме, що будь-яка наступна спроба використання sudo::
у вашому localhost замість цього буде передана на віддалений сервер! (і, мабуть, проксі-сервер також може бути халопним, якщо ви зробили те саме на другому сервері, що спричинило подальші проблеми).
Коротше кажучи, не використовуйте, ::
коли ви мульти-хоп!