Иногда очень не хочется редактировать файлы в vim или, прости господи, nano на удалённом сервере, а хочется нормального размера окна, подсветки синтаксиса и прочих удобств графического редактора текста с претензией на IDE, коим является Visual Studio Code. Далее — инструкция, как с помощью нехитрой магии сделать себе удобное редактирование конфигов, кода и всего такого. Disclaimer: я не приветствую редактирование кода на продакшене мимо VCS.
Данная последовательность действий предполагает, что на сервере вы можете получить права суперпользователя, вы знаете, что такое SSH, и вы уже можете подключиться к своему серверу без проблем с той машины, на которой установлен Visual Studio Code.
Шаг 1: устанавливаем в Visual Studio Code расширение Remote VSCode. Нажимаем Ctrl+P и вводим ext install remote-vscode
.
Шаг 2: открываем параметры редактора сочетанием клавиш Ctrl+,, и добавляем в настройки пользователя следующие параметры:
// Порт, по которому rcode будет "дозваниваться" до нашего сервера
"remote.port": 52698,
// Запускать ли сервер удаленного редактирования при запуске редактора?
"remote.onstartup": true,
// На каком сетевом адресе слушать команды. 127.0.0.1 здесь менять не стоит.
"remote.host": "127.0.0.1",
// Если вы не хотите видеть ошибки "Remote port already in use", включите эту опцию
"remote.dontShowPortAlreadyInUseError": false,
Шаг 3: устанавливаем rcode на нужный сервер. Реализаций rcode великое множество на различных языках программирования, и если вы хотите какую-то специфическую — на странице расширения Remote VSCode перечислены они все. Я же использую самую универсальную реализацию — на чистом Bash (который есть на серверах почти всегда). Для её установки на сервере выполняем следующую последовательность команд:
sudo wget -O /usr/local/bin/rcode \
https://raw.github.com/aurora/rmate/master/rmate
chmod a+x /usr/local/bin/rcode
Настоятельно рекомендую проверить содержимое файла /usr/local/bin/rcode
, прежде чем запускать его.
Шаг 4: На локальной машине редактируем настройки соединения по SSH с нужным сервером, чтобы Port Forwarding, через который и будет работать rcode, запускался автоматически. В файл ~/.ssh/config/
добавляем следующие строки:
Host хостнейм.удаленного.сервера
Port 22
User ваш_пользователь
ForwardAgent yes
RemoteForward 52698 127.0.0.1:52698
Две последних строки включают Port Forwarding для выбранного сервера.
Перезапускаем Visual Studio Code, перезапускаем SSH-соединение, и с помощью команды rcode
пробуем открыть файл в локальном редакторе. Скорее всего, файл откроется, и вы сможете его нормально редактировать. Помните — если соединение с сервером потеряно, файл не сохранится даже после переподключения, его придётся сохранять вручную.
Если при попытке запуска rcode возникает ошибка «команда не найдена», добавьте в .bashrc
своего пользователя следующую строку:
export PATH="$PATH:/usr/local/bin"
Если у вас не Bash, то вы а) наверняка знаете об этом и б) сами можете добавить в свои настройки шелла эквивалент команды выше