Print this page

Подключение VSCode по SSH

23 September 2025

Windows + VS Code → SSH по ключу: Быстро и По-DevOps

Лови рабочий чеклист: подключаем VS Code к удалённому серверу по SSH по ключу. Без воды, только практичные команды. ?

1. Генерация ключа (PowerShell)

Рекомендую ed25519 — безопасно и легко:

ssh-keygen -t ed25519 -C "This email address is being protected from spambots. You need JavaScript enabled to view it."
# сохранится в %USERPROFILE%\.ssh\id_ed25519
# можешь указать пароль (passphrase) или оставить пустым

Если хочешь RSA:

ssh-keygen -t rsa -b 4096 -C "This email address is being protected from spambots. You need JavaScript enabled to view it."

2. Установка публичного ключа на сервер

Вариант A — прямо из Windows:

type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh user@host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"

Вариант B — через ssh-copy-id (WSL / Linux):

ssh-copy-id -i ~/.ssh/id_ed25519.pub user@host

Или вручную скопировать .pub в ~/.ssh/authorized_keys.

Права на сервере:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

3. Запуск ssh-agent и добавление ключа (локально)

Чтобы не вводить passphrase каждый раз:

PowerShell (как сервис):

Get-Service ssh-agent | Set-Service -StartupType Automatic
Start-Service ssh-agent
ssh-add $env:USERPROFILE\.ssh\id_ed25519

Git Bash / WSL:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

4. Настройка SSH-конфига (рекомендуется)

Файл %USERPROFILE%\.ssh\config:

Host myserver
    HostName 1.2.3.4
    User ubuntu
    Port 22
    IdentityFile C:\Users\Владыка\.ssh\id_ed25519
    IdentitiesOnly yes

Теперь подключение — просто ssh myserver.

5. Подключение из VS Code

    1. Установи расширение Remote - SSH.
    2. F1 → Remote-SSH: Add New SSH Host..., вводим:
ssh myserver

или прямо:

ssh ubuntu@1.2.3.4 -i "C:\Users\Владыка\.ssh\id_ed25519"
  1. Выбираем сохранить в %USERPROFILE%\.ssh\config.
  2. F1 → Remote-SSH: Connect to Host... → выбираем myserver.
  3. VS Code установит серверный компонент и откроется новое окно.

Если используешь Pageant / PuTTY:

    • Укажи путь до plink.exe в настройках:
"remote.SSH.path": "C:\\Program Files\\PuTTY\\plink.exe"
  • Ключи управляются Pageant/puttygen.

6. Частые проблемы и решения

  • Права на сервере: ~/.ssh — 700, authorized_keys — 600.
  • VS Code ругается на агент: убедись, что ssh-agent запущен и ключ добавлен (ssh-add -l).
  • Не тот ключ: добавь IdentitiesOnly yes в конфиг или явно укажи -i.
  • Порт нестандартный: в конфиге Port 2222 или ssh user@host -p 2222.
  • VS Code долго "Installing server": временно отключи антивирус/фаервол или проверь доступ по SSH из PowerShell.
  • Пути Windows: полный путь в IdentityFile, обрати внимание на кавычки при пробелах.

7. Пример рабочего сценария

Генерация ключа:

ssh-keygen -t ed25519 -C "This email address is being protected from spambots. You need JavaScript enabled to view it."

Копия ключа на сервер:

type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh ubuntu@1.2.3.4 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"

Добавление в агент:

Start-Service ssh-agent
ssh-add $env:USERPROFILE\.ssh\id_ed25519

Подключение из VS Code:

Remote-SSH: Connect to Host...
ssh ubuntu@1.2.3.4 -i "C:\Users\You\.ssh\id_ed25519"

Готово. Быстро, чисто и по-человечески.