Удалённое редактирование файлов через SSH
По моей работе очень часто приходится удаленно редактировать файлы, например, конфиги nginx. Это само по себе не плохо, но есть в этом два недостатка:
- vim, и тут кто-то обвинит меня, что я недостаточно профессионален или вообще ленив, раз не могу освоить vim, но выходить из него я научился, так что не надо тут. :) А если серьезно, и правда сильно осваивать его пока нет желания, есть куча редакторов, которые проще и удобнее для меня.
- дикие тормоза при редактировании через ssh, нажимаешь символ, а он печатается через несколько десятков миллисекунд, а все потому, что протокол ssh синхронный, я тут, сервера в Америке, пинг до 200 мс. :)
Выход
- использовать удобный редактор, в моем случае это Visial Studio Code
- делать это локально, поднимая ssh тоннель
Что конкретно нужно сделать
- Поставить VSCode. Думаю с этим справитесь. :)
- Поставить на него плагин remote-vscode. Жмем
cmd + p
илиF1
и вводимext install remote-vscode
, ну или любым другим способом. - Настроить agent forwarding для нужного сервера. Для этого создаем или редактируем файл
~/.ssh/config
, если еще нет, в него добавляем:
- Заходим на наш сервер
ssh -v server
, естественно там уже должны быть ключи или нужно ввести пароль. - Ставим rmate
Делаем логаут.
- В VSCode жмем
cmd + p
илиF1
и в открывшейся консоли редактора выполняемRemote: Start Server
- Заходим снова на сервер. По команде
rcode /path/to/file
редактируем и сохраняем файл в своем любимом VSCode.
Естественно подобный трюк можно проделать практически с любым редактором кода. Google поможет найти, как это сделать. Удачи друзья.