По моей работе очень часто приходится удаленно редактировать файлы, например, конфиги nginx. Это само по себе не плохо, но есть в этом два недостатка:

  • vim, и тут кто-то обвинит меня, что я недостаточно профессионален или вообще ленив, раз не могу освоить vim, но выходить из него я научился, так что не надо тут. :) А если серьезно, и правда сильно осваивать его пока нет желания, есть куча редакторов, которые проще и удобнее для меня.
  • дикие тормоза при редактировании через ssh, нажимаешь символ, а он печатается через несколько десятков миллисекунд, а все потому, что протокол ssh синхронный, я тут, сервера в Америке, пинг до 200 мс. :)

Выход

  • использовать удобный редактор, в моем случае это Visial Studio Code
  • делать это локально, поднимая ssh тоннель

Что конкретно нужно сделать

  • Поставить VSCode. Думаю с этим справитесь. :)
  • Поставить на него плагин remote-vscode. Жмем cmd + p или F1 и вводим ext install remote-vscode, ну или любым другим способом.
  • Настроить agent forwarding для нужного сервера. Для этого создаем или редактируем файл ~/.ssh/config, если еще нет, в него добавляем:
  Host server
  HostName 123.45.67.89
  User root
  ForwardAgent yes
  RemoteForward 52698 127.0.0.1:52698
  
  • Заходим на наш сервер ssh -v server, естественно там уже должны быть ключи или нужно ввести пароль.
  • Ставим rmate
sudo wget -O /usr/local/bin/rcode https://raw.github.com/aurora/rmate/master/rmate
sudo chmod a+x /usr/local/bin/rcode

Делаем логаут.

  • В VSCode жмем cmd + p или F1 и в открывшейся консоли редактора выполняем Remote: Start Server
  • Заходим снова на сервер. По команде rcode /path/to/file редактируем и сохраняем файл в своем любимом VSCode.

Естественно подобный трюк можно проделать практически с любым редактором кода. Google поможет найти, как это сделать. Удачи друзья.