6

Я работаю в различных средах Linux и UNIX.

Я хотел бы элегантно решить проблему редактирования файлов удаленной конфигурации через SSH. Вместо того, чтобы использовать терминальные редакторы (nano), я хотел бы открыть файл в локальном текстовом редакторе на моем рабочем столе (Sublime Text 2).

CyberDuck, WinSCP и различные другие приложения SFTP могут сделать это.

Использование редакторов для пересылки X11 также оказалось проблематичным. Также использование архаичных текстовых редакторов, таких как Vim или Emacs, не очень хорошо отвечает моим потребностям. Они могли бы сделать это, но я предпочитаю использовать другое программное обеспечение для редактирования текста.

Использование ssh mounts (FUSE) также проблематично, если только это не происходит по требованию и не запускается удаленным сайтом.

Так чего я надеюсь достичь

  • Имейте некоторый вид легко развертываемого сценария оболочки и т.д., Который я могу скопировать на удаленный сервер (назовем его mooedit)

  • Я запускаю команду mooedit на удаленном сервере, к которому я подключился через соединение SSH

  • Mooedit отправляет какой-то сигнал (через SSH (на мой локальный рабочий стол)

  • На моем локальном рабочем столе этот сигнал фиксируется и определяет «ха! Moo хочет отредактировать файл на сервере X в папке Y '

  • Файл SFTP передан на локальный рабочий стол (/tmp)

  • Файл открывается в хорошем текстовом редакторе GUI на локальном рабочем столе

  • Когда нажата кнопка «Сохранить», локальный рабочий стол уведомляет об изменениях в файле, а SFTP отправляет полученный файл обратно на сервер.

Вопрос в том:

  • Какие механизмы сигнализации SSH обеспечивают для этого?

  • Любые другие методы для запуска локального текстового редактора для удаленного файла SSH?

3 ответа3

3

Вы можете использовать rsub и rmate для редактирования удаленных файлов в вашем локальном Sublime Text поверх ssh.

Вам нужно

  • установить пакет rsub в Sublime Text (с помощью диспетчера пакетов)
  • переадресовать порт 52698 через ssh, использовать ssh -R 52698:localhost:52698 ... или установить свой конфиг

    • создать / редактировать ~/.ssh/config и chmod 600 ~/.ssh/config (чтобы избежать проблем с разрешениями)
    • добавьте (замените SERVERNAME вашим сервером, вы также можете использовать *):

Host SERVERNAME
  RemoteForward 52698 127.0.0.1:52698

  • подключиться к вашему серверу с помощью ssh
  • установите скрипт rsub на удаленной машине:

sudo wget -O /usr/local/bin/rsub https://raw.github.com/aurora/rmate/master/rmate
sudo chmod +x /usr/local/bin/rsub

Затем вы можете сделать rsub file в сеансе ssh, и он откроет file в вашем локальном редакторе ST.

Работает с ST2/ST3, и вы также можете sudo rsub file !

1

Это старый вопрос, но пока без четкого ответа. Тем не менее, вы не упоминаете , из которых среды рабочего стола вы хотите отредактировать? В какой-то момент вы упоминаете WinSCP; Ясно, что Windows, с другой стороны, Cyberduck - это программа для Mac.

Предполагая, что вы работаете с Mac; почтенный BBEdit, хотя и не такой «сексуальный», как Sublime и до этого TextMate, все же имеет некоторые особенности, которых нет у других редакторов.

Как открытие и запись файлов непосредственно с и на серверы ssh и ftp, изнутри программы. Я использовал эту функциональность с версии 5 или около того, что сейчас 13 лет назад. Несколько жизней назад и до сих пор недоступно в «современных» редакторах.

http://www.barebones.com/products/bbedit/ (никак не связан, просто счастливый пользователь с 1993 года

0

Я хотел бы элегантно решить проблему редактирования файлов удаленной конфигурации ... Какие-либо другие методы запуска локального текстового редактора для удаленного файла SSH ?

Используйте что-то вроде webmin. Либо существующий модуль, либо создайте его для своих целей.


Обновить:

Можно заставить Apache обслуживать HTTPS-страницу (через серверный скрипт), которая показывает текстовый файл в текстовой области и использовать (это весь текст для запуска любого локального текстового редактора). Это, очевидно, требует некоторой заботы о безопасности.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .