ubuntu

Расширение 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 и согласившись на его конвертацию).