Расширение Remote-SSH для VScode позволяет работать с проектами сразу на удаленном сервере.
1. Eстановим расширение https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh
2. Теперь в терминале удалённой linux-машины создаем ключ для подключения (будем считать, что мы подключаемся к Ubuntu):
ssh-keygen
В результате мы получим пару закрытого и открытого ключа.
Перенесём ключи в папку /root/.ssh и переименуем открытый ключ (.pub) в authorized_keys (если файл существует, то нужно добавить в него содержимое публичного ключа).
3. Скопируем закрытый ключ на локальную Windows-машину в необходимую нам папку.
4. Создадим файл config в нужной нам папке (в Windows):
Host prod-000
HostName 185.135.82.187
User root
Port 3537
IdentityFile D:/SKY24/VSCode/ssh/prod-key
В этом файле мы указали название нашего подключения, порт подключения и добавили путь к ssh-ключу. Теперь при подключении Remote-SSH будет использовать ключ.
5. Установим правильные разрешения на закрытый ключ. Для этого в свойствах файла переходим в Безопасность - Дополнительно - Отключение наследования - Преобразовать унаследованные разрешения в явные разрешения для этого объекта - Применить.
Удаляем лишних пользователей: в списке "Элементы разрешений" удаляем всех, кроме нашей собственной учетной записи, а если в списке её нет, до добавляем нашу учётную запись с полными правами.
Можно сделать это через PowerShell. Сначала отключаем наследование прав от родительской папки:
icacls "D:\SKY24\VSCode\ssh\prod-key" /inheritance:r
Затем предоставляем полный доступ только текущему пользователю ($env:USERNAME — это ваша учетная запись):
icacls "D:\SKY24\VSCode\ssh\prod-000-key" /grant:r "$($env:USERNAME):(F)"
Готово. Эти команды сделают то же самое, что и шаги в первом способе, но автоматически. Теперь ваш SSH-клиент должен принять ключ.
6. В файле linux-машины /etc/ssh/ssd_config отключим вход по паролю, установив директиву PasswordAuthentication no, перезагружаем sshd-сервер: service ssh restart
Теперь подключаемся с локального VScode к удаленному серверу, переходим в нужную директорию и работаем с файлами напрямую, полностью используя все возможности приложения - как на локальной машине!
Этот ключ можно использовать и для подключения через putty: запускаем puttygen, загружаем наш приватный ключ, сохраняем его в формате SSH-1(RSA), после чего можем использовать с putty или WinSCP (здесь можно конвертнуть ключ прямо из програмы, выбрав ключ openssh и согласившись на его конвертацию).