В Windows 10 и Windows Server 2019 появился встроенный SSH клиент, который вы можете использовать для подключения к *Nix серверам, ESXi хостам и другим устройствам по защищенному протоколу, вместо Putty, MTPuTTY или других сторонних SSH клиентов. Встроенный SSH клиент Windows основан на порте OpenSSH и предустановлен в ОС, начиная с Windows 10 1809.
Содержание:
- Установка клиента OpenSSH в Windows 10
- Как использовать SSH клиенте в Windows 10?
- SCP: копирование файлов из/в Windows через SSH
Установка клиента OpenSSH в Windows 10
Клиент OpenSSH входит в состав Features on Demand Windows 10 (как и RSAT). Клиент SSH установлен по умолчанию в Windows Server 2019 и Windows 10 1809 и более новых билдах.
Проверьте, что SSH клиент установлен:
Get-WindowsCapability -Online | ? Name -like 'OpenSSH.Client*'
В нашем примере клиент OpenSSH установлен (статус: State: Installed).
Если SSH клиент отсутствует (State: Not Present), его можно установить:
- С помощью команды PowerShell:
Add-WindowsCapability -Online -Name OpenSSH.Client*
- С помощью DISM:
dism /Online /Add-Capability /CapabilityName:OpenSSH.Client~~~~0.0.1.0
- Через Параметры -> Приложения -> Дополнительные возможности -> Добавить компонент. Найдите в списке Клиент OpenSSH и нажмите кнопку Установить.
]Бинарные файлы OpenSSH находятся в каталоге c:windowssystem32OpenSSH.
- ssh.exe – это исполняемый файл клиента SSH;
- scp.exe – утилита для копирования файлов в SSH сессии;
- ssh-keygen.exe – утилита для генерации ключей аутентификации;
- ssh-agent.exe – используется для управления ключами;
- 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 [email protected]
Если SSH сервер запущен на нестандартном порту, отличном от TCP/22, можно указать номер порта:
ssh [email protected] -p port
Например, чтобы подключиться к Linux хосту с IP адресом 192.168.1.202 под root, выполните:
ssh [email protected]
При первом подключении появится запрос на добавление ключа хоста в доверенные, наберите yes -> Enter (при этом отпечаток ключа хоста добавляется в файл C:Usersusername.sshknown_hosts).
Затем появится запрос пароля указанной учетной записи, укажите пароль root, после чего должна открытся консоль удаленного Linux сервера (в моем примере на удаленном сервере установлен CentOS 8).
С помощью SSH вы можете подключаться не только к *Nix подобным ОС, но и к Windows. В одной из предыдущих статей мы показали, как настроить OpenSSH сервер на Windows 10 и подключиться к нему с другого компьютера Windows с помощью SSH клиента.
Если вы используете SSH аутентификацию по RSA ключам (см. пример с настройкой SSH аутентификации по ключам в Windows), вы можете указать путь к файлу с закрытым ключом в клиенте SSH так:
ssh [email protected] -i "C:Usersusername.sshid_rsa"
Также вы можете добавить ваш закрытый ключ в SSH-Agent. Сначала нужно включить службу ssh-agent и настроить ее автозапуск:
set-service ssh-agent StartupType ‘Automatic’
Start-Service ssh-agent
Добавим ваш закрытый ключ в базу ssh-agent:
ssh-add "C:Usersusername.sshid_rsa"
Теперь вы можете подключиться к серверу по SSH без указания пути к RSA ключу, он будет использоваться автоматически. Пароль для подключения не запрашивается (если только вы не защитили ваш RSA ключ отдельным паролем):
ssh [email protected]
Еще несколько полезных аргументов SSH:
-
-C
– сжимать трафик между клиентом и сервером (полезно на медленных и нестабильных подключениях); -
-v
– вывод подробной информации обо всех действия клиента ssh; -
-R
/
-L
– можно использовать для проброса портов через SSH туннель.
SCP: копирование файлов из/в Windows через SSH
С помощью утилиты scp.exe, которая входит в состав пакета клиента SSH, вы можете скопировать файл с вашего компьютера на SSH сервер:
scp.exe "E:ISOCentOS-8.1.1911-x86_64.iso" [email protected]:/home
Можно рекурсивно скопировать все содержимое каталога:
scp -r E:ISO [email protected]:/home
И наоборот, вы можете скопировать файл с удаленного сервера на ваш компьютер:
scp.exe [email protected]:/home/CentOS-8.1.1911-x86_64.iso e:tmp
Если вы настроите аутентификацию по RSA ключам, то при копировании файлов не будет появляться запрос на ввод пароля для подключения к SSH серверу. Это удобно, когда вам нужно настроить автоматическое копирование файлов по расписанию.
Итак, теперь вы можете прямо из Windows 10 подключаться к SSH серверам, копировать файлы с помощью scp без установки сторонних приложений и утилит.
В этой статье мы расскажем, как работает SSH-клиент, как его установить, а также как подключиться к Ubuntu и Windows 10 по SSH. Но давайте сначала разберёмся, что такое SSH.
Что такое SSH
SSH (Secure Shell) — сетевой протокол прикладного уровня, который позволяет управлять операционной системой и выполнять функцию тунеллирования TCP-соединения. Работа SSH построена на взаимодействии 2-х компонентов: SSH-сервера и SSH-клиента. Подробнее читайте в статье Что такое SSH.
SSH-сервер по умолчанию прослушивает соединения на порту 22, а также требует аутентификации сторон. Есть несколько вариантов проверки соединения:
- по паролю. Используется чаще всего. При таком типе аутентификации между клиентом и сервером создаётся общий секретный ключ: он шифрует трафик;
- с помощью ключевой пары. Предварительно генерируется открытый и закрытый ключ. На устройстве, с которого нужно подключиться, хранится закрытый ключ, а на сервере — открытый. При подключении файлы не передаются, система только проверяет, что устройство имеет доступ не только к открытому, но и к закрытому ключу.
- по IP-адресу. При подключении система идентифицирует устройство по IP-адресу. Такой тип аутентификации небезопасен и используется редко.
OpenSSH (Open Secure Shell) — набор программ, который позволяет шифровать сеансы связи в сети. При таких сеансах используется протокол SSH.
OpenSSH включает в себя компоненты:
- ssh,
- scp,
- sftp,
- sshd,
- sftp-server,
- ssh-keygen,
- ssh-keysign,
- ssh-keyscan,
- ssh-agent,
- ssh-add.
Этот набор ПО может аутентифицировать пользователей с помощью таких встроенных механизмов как:
- публичные ключи,
- клавиатурный ввод: пароли и запрос-ответ,
- Kerberos/GSS-API.
Установка OpenSSH на Ubuntu 22.04
В качестве примера мы рассмотрим установку Ubuntu 22.04. Настройка SSH Ubuntu Server 20.04 версии проходит аналогично.
При первой установке Ubuntu подключение по SSH запрещено по умолчанию. Включить доступ по SSH можно, если установить OpenSSH.
Для этого:
-
1.
Откройте терминал с помощью комбинации клавиш Ctrl + Alt + T.
-
2.
Обновите репозиторий командой:
-
3.
Установите SSH с помощью команды:
-
4.
Установите OpenSSH:
sudo apt install openssh-server
-
5.
Добавьте пакет SSH-сервера в автозагрузку:
sudo systemctl enable sshd
-
6.
Проверьте работу SSH:
Если установка прошла корректно, в выводе вы увидите настройки по умолчанию:
Настройка SSH Linux
Готово, вы установили OpenSSH на Ubuntu.
Настройка OpenSSH на Ubuntu 22.04
По умолчанию SSH-соединение работает по порту 22. Из соображений безопасности порт лучше изменить. Для этого:
-
1.
Запустите терминал с помощью комбинации клавиш Ctrl + Alt + T.
-
2.
Откройте конфигурационный файл в текстовом редакторе:
sudo nano /etc/ssh/sshd_config
-
3.
В sshd_config замените порт 22 на другое значение в диапазоне от 1 до 65 535. Важно, чтобы выбранный порт не был занят другой службой:
CentOS 8 настройка SSH -
4.
Чтобы изменения вступили в силу, перезапустите SSH-сервер:
Готово, вы настроили OpenSSH на Ubuntu 22.04. Теперь вы можете внести дополнительные настройки или в Ubuntu разрешить пользователю доступ по SSH.
Установка OpenSSH на Windows 10
-
1.
В меню «Пуск» нажмите Параметры:
-
2.
Перейдите в раздел Приложения:
Настройка SSH -
3.
Выберите Приложения и возможности и нажмите Дополнительные компоненты:
-
4.
Проверьте, установлен ли компонент «Клиент OpenSSH». Для этого в поисковой строке наберите «OpenSSH». Если компонент уже установлен, переходите к шагу Настройка SSH на Windows 10.
Если компонент ещё не установлен, используйте PowerShell.
Что такое PowerShell
PowerShell — это утилита командной строки в ОС Windows. Она выпущена в составе Windows 7, Windows 8, Windows 8.1 и Windows 10 как неотъемлемая часть системы.
Управлять ОС через PowerShell можно при помощи командлетов — специальных команд. Командлеты работают аналогично с командами в терминале Linux.
Использование командлетов позволяет:
- работать с файловой системой и реестром Windows,
- изменять настройки операционной системы,
- управлять службами и процессами,
- устанавливать программы,
- управлять установленным ПО,
- встраивать исполняемые компоненты в программы,
- создавать сценарии, которые помогут автоматизировать администрирование.
-
5.
Перейдите в меню «Пуск». Правой кнопкой мыши кликните на Windows PowerShell и выберите Запуск от имени администратора:
-
6.
Дайте согласие на запуск программы. Для этого нажмите Да:
-
7.
Введите командлет:
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
Вы увидите следующее сообщение:
-
8.
Установите OpenSSH с помощью командлета:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
После установки вы увидите сообщение. Если для параметра «RestartNeeded» указан статус «True», перезагрузите компьютер.
Готово, вы установили OpenSSH на Windows.
Настройка Open SSH на Windows 10
-
1.
В меню «Пуск» и кликните на Windows PowerShell:
-
2.
Введите командлет:
В выводе отобразится справочная информация о командлетах:
-
3.
Если вам нужно подключиться к серверу по SSH, выполните командлет:
Где:
- username — имя пользователя SSH,
- host — имя удаленного сервера или его IP-адрес.
Например, так выглядит командлет для подключения к хостингу REG.RU:
ssh u1234567@123.123.123.123
Готово, теперь вы можете как открыть доступ по SSH, так и внести дополнительные настройки на сервере.
SSH-протокол (англ. Secure Shell ) используется для безопасного удалённого управления операционной системой. По SSH можно подключиться к любому серверу с операционной системой семейства Linux.
Если на вашем сервере установлена ОС Windows Server — используйте подключение по RDP.
- Где найти доступы к серверу
- Как подключиться к серверу по SSH с компьютера на ОС Windows
- Как подключиться к серверу по SSH с компьютера на Linux/MacOS
Где найти доступы к серверу
Для подключения по SSH потребуется указать IP-адрес, пароль и логин администратора сервера. Эти данные можно найти на почте, привязанной к аккаунту (после активации VDS приходит письмо с доступами).
Как подключиться по SSH с компьютера на ОС Windows
Если на вашем компьютере установлена ОС Windows, а на сервере — UNIX-подобная система (например, Ubuntu, Debian, CentOS и др.), то для установки SSH-соединения можно использовать PuTTY. Это бесплатная программа под Windows состоит из одного запускаемого файла и не требует установки.
Чтобы установить соединение при помощи PuTTY, необходимо проделать следующие действия:
0. Скачайте нужную версию PuTTY по ссылке.
1. Запустите файл putty.exe. Откроется окно программы:
По умолчанию никаких настроек программы менять не нужно. Достаточно убедиться, что указан порт Port 22 и тип соединения Connection type — SSH.
2. В поле Host Name (or IP address) введите IP-адрес сервера. Нажмите кнопку Open
.
Может появиться предупреждение системы безопасности PuTTY — оно срабатывает при подключении к новому серверу. Нажмите Да
— и соединение продолжится.
3. В появившейся командной строке введите имя пользователя, под которым будет выполнен вход на сервер. Для первого подключения к серверу или подключения в режиме администратора используется логин root
.
4. В следующей строке введите пароль пользователя. При вводе пароля символы в командной строке не отображаются: можно набрать пароль вслепую или вставить кликом правой кнопки мыши, предварительно скопировав (Ctrl+C) его из письма с доступами. После ввода нажмите клавишу Enter. Если имя пользователя или пароль указаны неправильно, выведется ошибка «Access denied». В случае успешного подключения откроется командная строка виртуального сервера.
Как подключиться к серверу по SSH с компьютера на Linux/MacOS
Подключиться по SSH к виртуальному серверу можно через терминал — в обоих случаях это приложение предустановлено.
В операционных системах семейства Linux (Ubuntu и др.) его можно открыть сочетанием клавиш Ctrl+Alt+T.
В MacOS приложение Терминал можно найти через Spotlight
(иконка поиска в правом верхнем углу экрана).
Подключиться к виртуальному серверу по SSH можно одной командой:
ssh username@ip_adress
где вместо username нужно указать логин пользователя, вместо ip-adress — IP-адрес сервера, к которому вы подключаетесь. Если на сервере используется нестандартный порт SSH, команда изменится:
ssh username@ip_adress -p 22
где 22 — порт, по которому будет произведено подключение по SSH.
После ввода команды система запросит подтверждение подключения (необходимо ввести yes и нажать Enter) и пароль пользователя. После ввода нажмите клавишу Enter — откроется SSH-соединение:
Этот материал был полезен?
Previous Story
Ansible: ввод sudo-пароля при выполнении playbook
Next Story
MikroTik Mesh – единая WiFi сеть
Latest from Blog
Те, кто еще не знаком с IaaC или Infrastructure-as-a-Code, но постоянно работают с системами виртуализации, наверняка задумывались и
Посмотреть очередь mailq или: postqueue -p Принудительно запустить отправку из очереди mailq -q или: postqueue -f
Проверка, оптимизация и восстановление таблиц базы данных процесс не всегда тривиальный. Данную процедуру можно произвести средствами
Консольные команды Asterisk можно узнать при помощи команды core show help Войти в консоль Asterisk можно
Полезные ключи программы psql -U – Указываем пользователя, например postgres -W – Приглашение на ввод пароля
The built-in SSH client appeared in Windows 10 and Windows Server 2019. Ssh.exe
can be used to securely connect to Linux/UNIX servers, VMWare ESXi hosts and other devices instead of Putty, MTPuTTY and other third-party SSH clients. The native Windows SSH client is based on the OpenSSH port and is preinstalled in Windows starting from Windows 10 build 1809.
Contents:
- How to Enable (Install) the OpenSSH Client on Windows 10?
- Using a Native SSH Client on Windows 10
- Using SCP.exe to Transfer Files to/from Windows Host Using SSH
How to Enable (Install) the OpenSSH Client on Windows 10?
The OpenSSH client is included in Windows 10 Features on Demand (like RSAT). The SSH client is installed by default on Windows Server 2019, Windows 10 1809 and newer builds.
Check that the SSH client is installed:
Get-WindowsCapability -Online | ? Name -like 'OpenSSH.Client*'
In our example, the OpenSSH client is installed (State: Installed).
If not (State: Not Present), you can install it using:
- The PowerShell command:
Add-WindowsCapability -Online -Name OpenSSH.Client*
- With DISM:
dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0
- Via Settings -> Apps -> Optional features -> Add a feature. Find OpenSSH client in the list and click Install.
OpenSSH binary files are located in c:WindowsSystem32OpenSSH
.
ssh.exe
– the SSH client executable;scp.exe
– tool for copying files in an SSH session;ssh-keygen.exe
– tool to generate RSA SSH authentication keys;ssh-agent.exe
– used to manage RSA keys;ssh-add.exe
– adds a key to the SSH agent database.
You can install OpenSSH on previous Windows versions as well: just download and install the Win32-OpenSSH from GitHub (you can find an example in the article: Configuring SSH FTP on Windows).
Using a Native SSH Client on Windows 10
To start the SSH client, run the PowerShell or cmd.exe prompt. You can list the available options and syntax for 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]
In order to connect to a remote server using SSH, use the following command:
ssh username@host
If your SSH server is running on a port different from the standard TCP/22, specify the port number:
ssh username@host -p port
For example, to connect to a Linux host with the IP address 192.168.1.102 as root, run this command:
ssh root@192.168.1.102
At the first connection, you will see a request to add the host key to the trusted list. Type yes
and press ENTER. Then the host key fingerprint is added to the C:Usersusername.sshknown_hosts file.
You will be prompted for a password. Specify your root password, and your remote Linux server’s console should open (in my example, CentOS is installed on the remote server).
Using SSH, you can connect both to *Nix OSs and Windows. In one of the previous articles, we showed how to configure an OpenSSH server in Windows 10 and connect to it from a Windows host using an SSH client.
If you use the SSH authentication with RSA keys (see an example on how to configure SSH authentication using keys in Windows), you can specify a path to the private key file in your SSH client as follows:
ssh root@192.168.1.102 -i "C:Usersusername.sshid_rsa"
You can also add a private key to SSH-Agent. First, enable the ssh-agent service and configure automatic startup for it.
set-service ssh-agent StartupType 'Automatic'
Start-Service ssh-agent
Add your private key to the ssh-agent database:
ssh-add "C:Usersusername.sshid_rsa"
Then you will be able to connect to your server over SSH without specifying the path to the RSA key. It will be used automatically. Now you can securely connect to your server without a password (if you have not protected your RSA key with a different password):
ssh root@192.168.1.102
Here are some more useful SSH arguments:
-C
– used to compress traffic between client and server (it is useful in case of slow or unstable connections)-v
– displays detailed information about all SSH client actions-R/-L
– can be used to forward ports using an SSH tunnel
Using SCP.exe to Transfer Files to/from Windows Host Using SSH
Using the scp.exe tool (is a part of Windows 10 SSH client package), you can copy a file from your computer to the SSH server:
scp.exe "E:ISOCentOS-8.1.x86_64.iso" root@192.168.1.202:/home
You can copy all directory contents recursively:
scp -r E:ISO root@192.168.1.202:/home
And vice versa, you can transfer a file from a remote server to your computer:
scp.exe root@192.168.1.202:/home/CentOS-8.1.x86_64.iso c:iso
If you configure authentication using RSA keys, you won’t be prompted to enter your password to transfer files. This is useful if you want to configure automatic scheduled file copying.
Thus, you can connect to SSH servers directly from your Windows 10, copy files using scp without any other third-party apps or tools.