Поиск по сайту:

Как использовать собственный SSH-клиент в Windows 10?


Встроенный SSH-клиент появился в Windows 10 и Windows Server 2019.

Ssh.exe

может использоваться для безопасного подключения к серверам Linux/UNIX, хостам VMWare ESXi и другим устройствам вместо Putty, MTPuTTY и других сторонних SSH-клиентов. Собственный SSH-клиент Windows основан на порте OpenSSH и предустановлен в Windows, начиная с Windows 10, сборка 1809.

Как включить (установить) клиент OpenSSH в Windows 10?

Клиент OpenSSH включен в состав Windows 10 Функции по требованию (например RSAT). Клиент SSH установлен по умолчанию в Windows Server 2019, Windows 10 1809 и более поздних сборках.

Убедитесь, что SSH-клиент установлен:

Get-WindowsCapability -Online | ? Name -like 'OpenSSH.Client*'

В нашем примере клиент OpenSSH установлен (Состояние: Установлен).

Если нет (Состояние: Нет), вы можете установить его, используя:

  • Команда PowerShell:

    Add-WindowsCapability -Online -Name OpenSSH.Client*
  • С ДИСМ:

    dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0
  • Через «Настройки» -> «Приложения» -> «Дополнительные функции» -> «Добавить функцию». Найдите в списке Клиент OpenSSH и нажмите Установить.

Бинарные файлы OpenSSH расположены в

c:\Windows\System32\OpenSSH\
  • ssh.exe

    - исполняемый файл клиента SSH;

  • scp.exe

    — инструмент для копирования файлов в SSH-сессии;

  • ssh-keygen.exe

    - инструмент для генерации ключей аутентификации RSA SSH;

  • ssh-agent.exe

    - используется для управления ключами RSA;

  • ssh-add.exe

    - добавляет ключ в базу данных агента SSH.

Вы также можете установить OpenSSH в предыдущих версиях Windows: просто загрузите и установите Win32-OpenSSH с GitHub (пример можно найти в статье: Настройка SSH FTP в Windows).

Использование собственного SSH-клиента в Windows 10

Чтобы запустить SSH-клиент, запустите приглашение PowerShell или cmd.exe. Вы можете перечислить доступные параметры и синтаксис ssh.exe:

ssh
usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-E log_file] [-e escape_char]
[-F configfile] [-I pkcs11] [-i identity_file]
[-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec]
[-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address]
[-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]]
destination [command]

Чтобы подключиться к удаленному серверу с помощью SSH, используйте следующую команду:

ssh username@host

Если ваш SSH-сервер работает на порту, отличном от стандартного TCP/22, укажите номер порта:

ssh username@host -p port

Например, чтобы подключиться к хосту Linux с IP-адресом 192.168.1.102 от имени пользователя root, выполните следующую команду:

ssh root@192.168.1.102

При первом подключении вы увидите запрос на добавление ключа хоста в список доверенных. Тип

yes

и нажмите ВВОД. Затем отпечаток ключа хоста добавляется в файл C:\Users\username\.ssh\known_hosts .

Вам будет предложено ввести пароль. Укажите свой пароль root, и должна открыться консоль вашего удаленного сервера Linux (в моем примере на удаленном сервере установлена CentOS).

Используя SSH, вы можете подключаться как к ОС *Nix, так и к Windows. В одной из предыдущих статей мы показали, как настроить сервер OpenSSH в Windows 10 и подключиться к нему с хоста Windows с помощью SSH-клиента.

Если вы используете аутентификацию SSH с ключами RSA (см. пример настройки аутентификации SSH с использованием ключей в Windows), вы можете указать путь к файлу закрытого ключа в вашем SSH-клиенте следующим образом:

ssh root@192.168.1.102 -i "C:\Users\username\.ssh\id_rsa"

Вы также можете добавить закрытый ключ в SSH-Агент. Сначала включите службу ssh-agent и настройте для нее автоматический запуск.

set-service ssh-agent StartupType 'Automatic'
Start-Service ssh-agent

Добавьте свой закрытый ключ в базу данных ssh-агента:

ssh-add "C:\Users\username\.ssh\id_rsa"

Тогда вы сможете подключиться к вашему серверу по SSH без указания пути к ключу RSA. Он будет использоваться автоматически. Теперь вы можете безопасно подключиться к своему серверу без пароля (если вы не защитили свой ключ RSA другим паролем):

ssh root@192.168.1.102

Вот еще несколько полезных аргументов SSH:

  • -C

    - используется для сжатия трафика между клиентом и сервером (полезно в случае медленных или нестабильных соединений)

  • -v

    — отображает подробную информацию обо всех действиях SSH-клиента

  • -R/-L

    - может использоваться для переадресации портов с использованием SSH-туннеля

Использование SCP.exe для передачи файлов на/с хоста Windows с использованием SSH

С помощью инструмента scp.exe (входит в состав пакета SSH-клиента Windows 10) вы можете скопировать файл со своего компьютера на SSH-сервер:

scp.exe "E:\ISO\CentOS-8.1.x86_64.iso" root@192.168.1.202:/home

Вы можете рекурсивно скопировать все содержимое каталога:

scp -r E:\ISO\ root@192.168.1.202:/home

И наоборот, вы можете передать файл с удаленного сервера на свой компьютер:

scp.exe root@192.168.1.202:/home/CentOS-8.1.x86_64.iso c:\iso

Если вы настроите аутентификацию с использованием ключей RSA, вам не будет предложено вводить пароль для передачи файлов. Это полезно, если вы хотите настроить автоматическое копирование файлов по расписанию.

Таким образом, вы можете подключаться к SSH-серверам непосредственно из Windows 10, копировать файлы с помощью scp без каких-либо других сторонних приложений или инструментов.

Статьи по данной тематике