Доступ к удаленному хосту через шлюз с использованием Emacs и Tramp - PullRequest
3 голосов
/ 07 июня 2011

Я пытаюсь отредактировать удаленный файл в Emacs, и у меня возникают проблемы с получением документации и предыдущих SO вопросов для выполнения того, что я хочу.

Я работаю удаленно, из разных мест, и я хочу редактировать файлы на сервере Foo.Сервер Foo не доступен напрямую из Интернета, но сервер Bar есть, и Foo принимает соединения от Bar.Я могу рассчитывать на достижение Бара, а Бар - на Фу.

Документация Tramp говорит мне, что для этого мне нужно добавить в список прокси-серверов Tramp, и это должно выглядеть следующим образом:

(add-to-list 'tramp-default-proxies-alist
    ("foo_host" "seanm" "/ssh:seanm@bar_host"))

Однако, когда я пытаюсь это сделать,не работает, и я получаю непостижимые сообщения об ошибках.

  • Как я могу однозначно сослаться на Foo?Не существует DNS-сервера, который знает, как найти Foo по его имени хоста, а IP-адрес Foo находится в приватном пространстве 10.0.0.0/8.Я не хочу ссылаться на Foo по этому IP-адресу, потому что это рискует столкнуться с хостами в других сетях 10.0.0.0/8, которые я могу посетить.В качестве клуджа я добавил Foo в файл бара / etc / hosts, но это не сработало.Есть ли лучшее решение?

  • Каким правилам цитирования мне необходимо придерживаться?В примерах, которые я вижу, используются как «двойные кавычки», так и «тиковые и одиночные» кавычки, причем последний, по-видимому, требует экранирования двойной обратной косой черты.Я не понимаю, что там происходит - кажется, что есть несколько слоев парсинга, через которые эта строка будет протолкнута.

  • Пробуя варианты, яполучены сообщения об ошибках, которые равняются «вы не можете использовать этот метод удаленного доступа для этого сценария».Как я могу настроить второй метод прокси, который позволит мне сделать эквивалент Cx Cf /su::/path/to/file?

Все это кажется очень болезненным по сравнению с предыдущим многоскачковым синтаксисом.

Позже: я смог правильно настроить многие слои, чтобы emacs правильно «слышал» имена хостов.Однако я не могу заставить любые прыжки за секунду работать правильно, что очень разочаровывает в функциональности.

1 Ответ

1 голос
/ 10 сентября 2011

Правильным ответом оказалось изменение конфигурации SSH с помощью директив Host, HostAlias ​​и ProxyCommand.

...