To check if an SSH server is running in Windows, you can use the command-line utility «netstat«. Netstat allows you to view active connections and listening ports on your system. To check for an active SSH server, open a Command Prompt window and enter the following command:
`netstat -a | find «22«`
This will search for any instance of port 22 (the standard port used by SSH) being used or listened to by your computer. If there is an entry showing that port 22 is in use, it means that there is likely an SSH server running on your system.
How can I tell if SSH server is running?
How do you check if SSH is working on Windows?
To check if SSH is working on Windows, you can use the built-in command line tool called “PuTTY”. PuTTY allows you to establish an encrypted connection between two computers over a network. To use it, follow these steps:
1. Download and install PuTTY from its official website (https://www.putty.org/).
2. After installation, open up a terminal window in your computer and type “putty” followed by the IP address of the remote server that you are trying to connect to via SSH (e.g., putty 10.0.0.1).
3 Select “SSH” as your connection type before clicking «Open» at the bottom of the screen or pressing enter on your keyboard when prompted for a username and password for authentication purposes; this will initiate an SSH session with the specified server/IP address that you have provided earlier in step 2 above..
4 You should see a successful login message after establishing an SSH connection successfully with the remote server; if not, then there may be some issue with either your configuration settings or firewall rules blocking access to port 22 which is used for secure shell connections like PuTTY does..
5 If everything seems ok but still unable to log in using ssh credentials then try Telnet instead which uses port 23 – this can help diagnose any issues related to network connectivity or authentication problems preventing successful ssh logins on Windows machines..
How do I start a SSH server on Windows?
Starting a SSH server on Windows is fairly straightforward. To get started, you will need to install an SSH server application like OpenSSH for Windows 10 or PuTTY. Once the application is installed, you can use it to create and manage user accounts and access control settings in order to establish secure connections between two computers using Secure Shell (SSH).
To set up the server, start by creating an administrative account that will be used as the entry point into the system. Then open the SSH configuration file located at %PROGRAMDATA%\ssh\sshd_config and add your desired settings such as port numbers, authentication methods, etc., before saving and closing it. After that’s done, launch the SSH service from within your chosen application so that remote users can connect via this protocol. Finally, remember to open up any necessary firewall ports in order for incoming connections to reach your machine securely.
How do I test ssh in Windows 10?
Testing SSH in Windows 10 is a straightforward process, and there are several tools available for this purpose. The most commonly used tool is PuTTY, which is an open-source terminal emulator specifically designed to connect with remote systems over the SSH protocol. To test your connection using PuTTY, you will need to:
1. Download and install the latest version of PuTTY from its official website (https://www.putty.org/).
2. Open the program, enter your server’s IP address or hostname in the Host Name field and select ‘SSH’ as connection type from the radio buttons below it; then click ‘Open’.
3. Enter username when prompted on screen; then press ‘Enter’.
4. If necessary, enter password when prompted; then press ‘Enter’.
5. You should now be connected through SSH if everything was entered correctly!
How do I know if port 22 is OpenSSH?
To determine if port 22 is being used for OpenSSH, you can use the command line tool netstat. To do this, open up a terminal window and type in ‘netstat -an’, which will list all active network connections. Look for an entry that has port 22 listed as one of its ports; if it says «ssh» or «OpenSSH» beside it, then yes, port 22 is configured to use OpenSSH.
How do I test SSH in Windows 10?
Testing SSH in Windows 10 is a relatively simple process. To test your SSH connection, you will need to open an elevated command prompt and run certain commands. Below are the steps to follow for testing your SSH connection on Windows 10:
1. Open the Start menu and type “cmd” into the search bar. Right-click on Command Prompt and select Run as Administrator from the context menu that appears.
2. In the command prompt window, enter “ssh -v [username]@[hostname]” (without quotes). Replace [username] with your username for accessing the remote server, and replace [hostname] with either its IP address or domain name of this server.
3. Press Enter; if everything has been configured correctly, you will be prompted for a password associated with your username used in Step 2 above before being logged in successfully to your remote system over SSH protocol.
How to start SSH service in Windows cmd?
To start an SSH service in Windows cmd, you need to install an SSH server first. There are several options available; we recommend using OpenSSH as it is a free and open source software.
Once the OpenSSH server is installed, follow these steps:
1. Open the Windows Command Prompt (cmd).
2. Type «net start sshd» and press Enter to start the service.
3. To verify that the service has started successfully, type «sc query sshd» and press Enter – if it returns “RUNNING” then your SSH Server has been successfully started!
What is SSH command windows?
SSH (Secure Shell) is a command-line interface for securely communicating with computers over an unsecured network. SSH provides secure encrypted communication between two systems, allowing users to securely log in and execute commands on the remote system from their local system. It is commonly used for managing servers, network devices, and applications remotely.
SSH (Secure Shell) — это сетевой протокол, используемый для безопасного удаленного доступа к компьютеру через незащищенную сеть. Он шифрует передаваемую информацию, защищая ее от несанкционированного доступа и перехвата. SSH является стандартным протоколом для управления удаленными серверами и обеспечивает безопасное подключение и выполнение команд удаленно.
Если вы пользователь Windows и хотите проверить SSH подключение к удаленному серверу, существует несколько методов. В этой статье мы рассмотрим пошаговую инструкцию по проверке SSH подключения на Windows.
Шаг 1: Установите SSH клиент на свой компьютер. Для Windows существует несколько SSH клиентов, таких как PuTTY, OpenSSH, Bitvise SSH Client, и другие. Установите один из них, выбрав тот, который лучше всего соответствует вашим потребностям.
Шаг 2: Откройте SSH клиент и введите IP адрес или доменное имя удаленного сервера в соответствующее поле. Укажите порт, если он отличается от значения по умолчанию (порт 22).
Шаг 3: Введите ваше имя пользователя и пароль для удаленного сервера. Если у вас есть SSH ключ, вы можете также указать его вместо пароля в соответствующем поле.
После ввода всех необходимых данных, нажмите на кнопку «Connect» или «Войти» (в зависимости от SSH клиента). Если подключение прошло успешно, вы увидите командную строку удаленного сервера и будете готовы выполнить команды и работать с удаленным сервером через SSH.
Проверка SSH подключения на Windows может быть полезной для администраторов, разработчиков и других пользователей, которым требуется удаленный доступ к серверам. Следуя этой пошаговой инструкции, вы сможете легко проверить и настроить SSH подключение на Windows и управлять удаленными серверами безопасно и эффективно.
Содержание
- SSH подключение на Windows: пошаговая инструкция
- Скачайте и установите OpenSSH
- Настройте сервер SSH
- Проверьте подключение к серверу
- Вопрос-ответ
- Как проверить SSH подключение на Windows?
- Как узнать, установлен ли SSH-сервер на Windows?
- Как проверить доступность SSH-сервера на удаленном устройстве?
- Какой порт используется для SSH подключения?
SSH подключение на Windows: пошаговая инструкция
Шаг 1: Установка клиента SSH
Перед тем, как подключаться к удаленному серверу по SSH на Windows, вам нужно установить SSH-клиент. Один из самых популярных SSH-клиентов для Windows — это PuTTY. Скачайте и установите PuTTY с официального сайта.
Шаг 2: Запуск PuTTY
После установки PuTTY запустите программу. Вам будет предложено ввести адрес удаленного сервера и порт SSH-подключения. Укажите адрес сервера и порт.
Шаг 3: Авторизация
Когда вы вводите адрес сервера и порт, нажмите кнопку «Open», чтобы установить SSH-соединение. При первом подключении вам будет предложено принять ключ безопасности сервера. Нажмите «Yes» для продолжения.
Шаг 4: Ввод учетных данных
После того, как вы подтвердили ключ безопасности, вам предложат ввести учетные данные (имя пользователя и пароль) для входа на удаленный сервер. Введите ваше имя пользователя и пароль.
Шаг 5: Успешное подключение
Если все данные были введены правильно, вы успешно подключитесь к удаленному серверу по SSH на Windows. После этого вы сможете выполнить команды удаленно с помощью SSH.
Теперь вы знаете, как установить SSH подключение на Windows с помощью PuTTY. Следуйте этой пошаговой инструкции и настройте безопасное удаленное подключение к вашим серверам и компьютерам.
Скачайте и установите OpenSSH
Для начала необходимо скачать и установить OpenSSH на ваш компьютер с операционной системой Windows.
Шаги по установке OpenSSH:
1. | Перейдите на официальный сайт OpenSSH, нажав на ссылку в браузере. |
2. | На странице релизов найдите раздел «Assets» и выберите пакет с расширением «.zip» для последней стабильной версии. |
3. | Распакуйте архив с помощью установленного архиватора, например WinRAR или 7-Zip. |
4. | Проверьте наличие всех необходимых файлов и папок в распакованном архиве, включая исполняемый файл «ssh.exe». |
5. | Скопируйте содержимое распакованного архива в удобное для вас место на компьютере, например в папку «C:\Program Files\OpenSSH». |
6. | Убедитесь в наличии переменных среды «Path» и «OpenSSH_HOME». Если они отсутствуют, создайте их с указанием пути к папке с установленным OpenSSH. |
7. | Откройте командную строку или PowerShell и выполните команду «ssh» для проверки установленной версии OpenSSH. |
Настройте сервер SSH
Перед тем как проверять SSH подключение на Windows, вам необходимо настроить сервер SSH на удаленном хосте. Вот пошаговая инструкция, как это сделать:
- Установите сервер SSH на удаленный хост. Вариантов для этого достаточно, но одним из самых популярных является сервер OpenSSH.
- Сконфигурируйте сервер SSH, определив параметры подключения и безопасности. Файл конфигурации OpenSSH находится по умолчанию в «/etc/ssh/sshd_config» (на Linux) или «C:\Program Files\OpenSSH\sshd_config» (на Windows).
- Откройте порт, который будет использоваться сервером SSH. По умолчанию это порт 22, но этот номер можно изменить в файле конфигурации. Убедитесь, что этот порт не блокируется сетевыми настройками (например, на файрволле).
- Включите сервер SSH, чтобы он автоматически запускался после перезагрузки. Для Linux, используйте команду:
sudo systemctl enable ssh
. Для Windows, вы можете настроить службу OpenSSH в «Services». - Задайте пользовательские учетные данные (логин и пароль) для доступа к серверу SSH. Это можно сделать с помощью утилиты OpenSSH (на Linux) или командной строки (на Windows).
- Убедитесь, что сервер SSH работает, проверив его статус. Для Linux, используйте команду:
sudo service ssh status
. Для Windows, вы можете проверить службу OpenSSH в «Services».
После выполнения всех этих шагов, ваш сервер SSH будет готов к подключению с помощью SSH клиента на Windows.
Проверьте подключение к серверу
После установки программы OpenSSH вы можете проверить подключение к серверу SSH с помощью команды ssh
. Вот как это сделать:
- Откройте командную строку, нажав Win + R и введя «cmd» в поле «Выполнить».
- В командной строке введите
ssh имя_пользователя@адрес_сервера
, заменив «имя_пользователя» и «адрес_сервера» соответствующими значениями. - Нажмите Enter, и вас попросят ввести пароль для подключения к серверу SSH.
- Если подключение прошло успешно, вы увидите приглашение, связанное с удаленным сервером. Вы теперь можете вводить команды прямо в командную строку, чтобы управлять удаленным сервером.
Например, если ваше имя пользователя «user» и адрес сервера «192.168.0.1», команда будет выглядеть следующим образом: ssh user@192.168.0.1
.
Если подключение не удалось, проверьте правильность введенных данных (имя пользователя и адрес сервера) и убедитесь, что сервер SSH работает и доступен.
Вопрос-ответ
Как проверить SSH подключение на Windows?
Для проверки SSH подключения на Windows нужно выполнить несколько шагов. Сначала убедитесь, что SSH-сервер установлен и работает на целевом устройстве. Затем откройте командную строку на компьютере Windows и введите команду «ssh [username]@[hostname]», где [username] — это ваше имя пользователя на удаленном устройстве, а [hostname] — это IP-адрес или доменное имя удаленного устройства. Если подключение успешно, вам будет предложено ввести пароль. Если подключение не удалось, проверьте правильность введенных данных и убедитесь, что SSH-сервер доступен.
Как узнать, установлен ли SSH-сервер на Windows?
Чтобы узнать, установлен ли SSH-сервер на Windows, вы можете выполнить несколько действий. Сначала проверьте наличие программы OpenSSH в списке установленного программного обеспечения на вашем компьютере. Для этого перейдите в «Панель управления» -> «Программы» -> «Программы и компоненты». Если вы видите программу OpenSSH в списке, это означает, что SSH-сервер установлен. Если OpenSSH отсутствует, вам нужно будет установить его, следуя инструкциям на сайте OpenSSH.
Как проверить доступность SSH-сервера на удаленном устройстве?
Для проверки доступности SSH-сервера на удаленном устройстве можно воспользоваться утилитой ping. Откройте командную строку на компьютере Windows и введите команду «ping [hostname]», где [hostname] — это IP-адрес или доменное имя удаленного устройства. Если удаленный SSH-сервер доступен, вы увидите ответы от удаленного устройства. Если удаленный SSH-сервер не доступен, вы получите сообщение об ошибке «Ответ от [hostname]: Заданный узел недоступен.». В таком случае, убедитесь, что удаленное устройство включено и подключено к сети, а также проверьте настройки брандмауэра, блокирующие SSH-порт.
Какой порт используется для SSH подключения?
Для SSH подключения используется стандартный порт 22. Это означает, что SSH-сервер слушает входящие подключения на порту 22. Однако, порт SSH может быть изменен на другой, если был изменен в настройках SSH-сервера. Если вы пытаетесь подключиться к удаленному SSH-серверу, который слушает другой порт, вам нужно будет указать этот порт в команде подключения, например: «ssh [username]@[hostname] -p [port]», где [port] — это номер порта, на котором работает SSH-сервер.
I am looking for a way to test if a SSH server is available from a Windows host. I found this one-liner, but it requires the a Unix/Linux host:
ssh -q -o "BatchMode=yes" user@host "echo 2>&1" && echo "UP" || echo "DOWN"
Telnet’ing to port 22 works, but that’s not really scriptable. I have also played around with Plink, but I haven’t found a way to get the functionality of the one-liner above.
Does anyone know Plink enough to make this work? Are there any other windows based tools that would work?
Please note that the SSH servers in question are behind a corporate firewall and are NOT internet accessible.
Arrrg. Figured it out:
C:\>plink -batch -v user@host
Looking up host "host"
Connecting to 10.10.10.10 port 22
We claim version: SSH-2.0-PuTTY_Release_0.62
Server version: SSH-2.0-OpenSSH_4.7p1-hpn12v17_q1.217
Using SSH protocol version 2
Server supports delayed compression; will try this later
Doing Diffie-Hellman group exchange
Doing Diffie-Hellman key exchange with hash SHA-256
Host key fingerprint is:
ssh-rsa 1024 aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa
Initialised AES-256 SDCTR client->server encryption
Initialised HMAC-SHA1 client->server MAC algorithm
Initialised AES-256 SDCTR server->client encryption
Initialised HMAC-SHA1 server->client MAC algorithm
Using username "user".
Using SSPI from SECUR32.DLL
Attempting GSSAPI authentication
GSSAPI authentication initialised
GSSAPI authentication initialised
GSSAPI authentication loop finished OK
Attempting keyboard-interactive authentication
Disconnected: Unable to authenticate
C:\>
You can verify that your Windows 10 version has it enabled by opening Windows Settings and navigating to Apps > Optional features and verifying that Open SSH Client is shown. If it is not installed, you may be able to do so by clicking Add a feature.
To check if the client is available on your Linux-based system, you will need to:
- Load an SSH terminal. You can either search for terminal or press CTRL + ALT + T on your keyboard.
- Type in ssh and press Enter in the terminal.
- If the client is installed, you will receive a response that looks like this:
Is SSH running on Windows?
The SSH client is a part of Windows 10, but it’s an optional feature that isn’t installed by default.Windows 10 also offers an OpenSSH server, which you can install if you want to run an SSH server on your PC.
How do I start SSH service in Windows?
Start the service and/or configure automatic start:
- Go to Control Panel > System and Security > Administrative Tools and open Services.
- If you want the server to start automatically when your machine is started: Go to Action > Properties.
- Start the OpenSSH SSH Server service by clicking the Start the service.
How do I enable SSH on my PC?
Enable the OpenSSH Server in Windows 10
- Open the Settings app and go to Apps -> Apps & features.
- On the right, click Manage optional features.
- On the next page, click the button Add a feature.
- In the list of features, select OpenSSH Server and click on the Install button.
- Restart Windows 10.
How do I run ssh on Windows 10?
How to Use SSH Commands in Windows 10
- Open Command Prompt (or PowerShell) Press Start and then type Command Prompt.
- Run the SSH command to view its usage guide. Command Prompt will return a full list of options and syntax for you to use as you require.
- Connect to your server via your Windows Open SSH client.
How do I open SSH files in Windows 10?
You can start an SSH session in your command prompt by executing ssh user@machine and you will be prompted to enter your password. You can create a Windows Terminal profile that does this on startup by adding the commandline setting to a profile in your settings.
How do I find my ssh port number in Windows?
The SSH Port number is configured by modifying the following registry key: usGSWSSHDPort which is a number. The key is: For Win x64: HKEY_LOCAL_MACHINESOFTWAREWow6432NodeGeorgia SoftWorksGSW_SSHDParametersusGSWSSHDPort.
How do I enable SSH on Windows Firewall?
Configure the Windows Firewall
- Click on Start –> Control Panel –> Windows Firewall –> Exceptions Tab.
- Click the Add Port… button.
- Name: SSH.
- Port Number: 22.
- TCP.
- Click OK to add the SSH exception to the firewall.
- Click OK to close the Windows Firewall screen.
How do I enable SSH in PowerShell?
Step by step set up SSH remoting on Windows
- Step 1: First, you will need to install PowerShell 7 on Windows.
- Step 2: Install OpenSSH Client and Open SSH Server.
- Step 3: Configure and edit the sshd_config file located at $env:ProgramDatassh on the target machine.
- Step 4: Restart the sshd service.
How do I open an SFTP file in Windows?
Run WinSCP and select “SFTP” as the protocol. In the host name field, enter “localhost” (if you’re testing the PC you installed OpenSSH on). You will need to enter your Windows username and password to allow the program to connect to the server.
How do I SSH into Raspberry Pi from Windows?
SSH from Windows
- Download & install the PuTTy application.
- Enter the Pi’s ip address in the Host Name Box on port 22.
- Select SSH as connection type.
- Click Open button.
- Accept the Server’s key finger print.
- Login as user pi with the password raspberry by default.
What is the best SSH client for Windows?
Here are the Best SSH Clients for Windows of 2021:
- SolarPuTTY FREE TOOL. SolarPuTTY is a 100% free SSH client for Windows, developed by SolarWinds.
- PuTTY. PuTTY is one of the more popular and widely used SSH clients for Windows platforms.
- SecureCRT.
- SmarTTY.
- mRemoteNG.
- MobaXterm.
How do I set up SSH?
How to set up SSH keys
- Create the ssh key pair using ssh-keygen command.
- Copy and install the public ssh key using ssh-copy-id command on a Linux or Unix server.
- Add yourself to sudo or wheel group admin account.
- Disable the password login for root account.
Can you ssh using PowerShell?
PowerShell Remote Connection with SSH
We can also use SSH in PowerShell to establish a remote connection to another computer or server. This can be between Windows computers or Windows-Linux and vice versa.
Can I use PowerShell to ssh?
Connecting via PowerShell Remoting and SSH
Instead, you’ll use the HostName parameter to specify the remote computer. By default, PowerShell Remoting still uses WsMan. To override the default, use the SSHTransport parameter to indicate you’d like to connect via SSH.
How do I check my ssh client version?
On Linux, we can use ssh -v localhost or ssh -V to check the OpenSSH version currently installed.
How do I see what ports are running on Windows?
Open the Start menu, type Command Prompt and select Run as administrator. Now, type netstat -ab and hit Enter. Wait for the results to load, port names will be listed next to the local IP address. Just look for the port number you need, and if it says LISTENING in the State column, it means your port is open.
How do I find my SSH port?
Procedure to change the SSH Port for Linux or Unix Server
- Open the terminal application and connect to your server via SSH.
- Locate sshd_config file by typing the find command.
- Edit the sshd server file and set Port option.
- Save and close the file.
- Restart the sshd service to change the ssh port in Linux.
How can I tell if SSH port 22 is open?
How to check if port 22 is open in Linux
- Run the ss command and it will display output if port 22 opened: sudo ss -tulpn | grep :22.
- Another option is to use the netstat: sudo netstat -tulpn | grep :22.
- We can also use the lsof command to see if ssh port 22 status: sudo lsof -i:22.
Does Cygwin have SSH?
The Cygwin SSH server is an emulation of the UNIX environment and OpenSSH for Windows. Prior to configuring Cygwin SSH, you should refer to the README located in the Cygwin package distribution under /usr/share/doc/Cygwin/openssh.
В современных версиях Windows уже есть встроенный SSH сервер на базе пакета OpenSSH. В этой статье мы покажем, как установить и настроить OpenSSH сервер в Windows 10/11 и Windows Server 2022/2019 и подключиться к нему удаленно по защищенному SSH протоколу (как к Linux).
Содержание:
- Установка сервера OpenSSH в Windows
- Настройка SSH сервера в Windows
- Sshd_config: Конфигурационный файл сервера OpenSSH
- Подключение по SSH к Windows компьютеру
- Логи SSH подключений в Windows
Установка сервера OpenSSH в Windows
Пакет OpenSSH Server включен в современные версии Windows 10 (начиная с 1803), Windows 11 и Windows Server 2022/2019 в виде Feature on Demand (FoD). Для установки сервера OpenSSH достаточно выполнить PowerShell команду:
Get-WindowsCapability -Online | Where-Object Name -like ‘OpenSSH.Server*’ | Add-WindowsCapability –Online
Или при помощи команды DISM:
dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0
Если ваш компьютер подключен к интернету, пакет OpenSSH.Server будет скачан и установлен в Windows.
Также вы можете установить сервер OpenSSH в Windows через современную панель Параметры (Settings -> Apps and features -> Optional features -> Add a feature, Приложения -> Управление дополнительными компонентами -> Добавить компонент. Найдите в списке OpenSSH Server и нажмите кнопку Install).
На изолированных от интернета компьютерах вы можете установить компонент с ISO образа Features On Demand (доступен в личном кабинете на сайте Microsoft: MSDN или my.visualstudio.com). Скачайте диск, извлеките его содержимое в папку c:\FOD (достаточно распаковать извлечь файл
OpenSSH-Server-Package~31bf3856ad364e35~amd64~~.cab
), выполните установку из локального репозитория:
Add-WindowsCapability -Name OpenSSH.Server~~~~0.0.1.0 -Online -Source c:\FOD
Также доступен MSI установщик OpenSSH для Windows в официальном репозитории Microsoft на GitHub (https://github.com/PowerShell/Win32-OpenSSH/releases/). Например, для Windows 10 x64 нужно скачать и установить пакет OpenSSH-Win64-v8.9.1.0.msi. Следующая PowerShell команда скачает MSI файл и установит клиент и сервер OpenSSH:
Invoke-WebRequest https://github.com/PowerShell/Win32-OpenSSH/releases/download/v8.9.1.0p1-Beta/OpenSSH-Win64-v8.9.1.0.msi -OutFile $HOME\Downloads\OpenSSH-Win64-v8.9.1.0.msi -UseBasicParsing
msiexec /i c:\users\root\downloads\OpenSSH-Win64-v8.9.1.0.msi
Также вы можете вручную установить OpenSSH сервер в предыдущих версиях Windows (Windows 8.1, Windows Server 2016/2012R2). Пример установки Win32-OpenSSH есть в статье “Настройка SFTP сервера (SSH FTP) в Windows”.
Чтобы проверить, что OpenSSH сервер установлен, выполните:
Get-WindowsCapability -Online | ? Name -like 'OpenSSH.Ser*'
State : Installed
Настройка SSH сервера в Windows
После установки сервера OpenSSH в Windows добавляются две службы:
- ssh-agent (OpenSSH Authentication Agent) – можно использовать для управления закрытыми ключами если вы настроили SSH аутентификацию по ключам;
- sshd (OpenSSH SSH Server) – собственно сам SSH сервер.
Вам нужно изменить тип запуска службы sshd на автоматический и запустить службу с помощью PowerShell:
Set-Service -Name sshd -StartupType 'Automatic'
Start-Service sshd
С помощью nestat убедитесь, что теперь в системе запущен SSH сервер и ждет подключений на порту TCP:22 :
netstat -na| find ":22"
Проверьте, что включено правило брандмауэра (Windows Defender Firewall), разрешающее входящие подключения к Windows по порту TCP/22.
Get-NetFirewallRule -Name *OpenSSH-Server* |select Name, DisplayName, Description, Enabled
Name DisplayName Description Enabled ---- ----------- ----------- ------- OpenSSH-Server-In-TCP OpenSSH SSH Server (sshd) Inbound rule for OpenSSH SSH Server (sshd) True
Если правило отключено (состоянии Enabled=False) или отсутствует, вы можете создать новое входящее правило командой New-NetFirewallRule:
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
Рассмотрим, где храниться основные компоненты OpenSSH:
- Исполняемые файлы OpenSSH Server находятся в каталоге
C:\Windows\System32\OpenSSH\
(sshd.exe, ssh.exe, ssh-keygen.exe, sftp.exe и т.д.) - Конфигурационный файл sshd_config (создается после первого запуска службы):
C:\ProgramData\ssh
- Файлы authorized_keys и ssh ключи можно хранить в профиле пользователей:
%USERPROFILE%\.ssh\
Sshd_config: Конфигурационный файл сервера OpenSSH
Настройки сервере OpenSSH хранятся в конфигурационном файле %programdata%\ssh\sshd_config. Это обычный текстовый файл с набором директив. Для редактирования можно использовать любой текстовый редактор (я предпочитаю notepad++). Можно открыть с помощью обычного блокнота:
start-process notepad C:\Programdata\ssh\sshd_config
Например, чтобы запретить SSH подключение для определенного доменного пользователя (и всех пользователей указанного домена), добавьте в конце файле директивы:
DenyUsers winitpro\[email protected] DenyUsers corp\*
Чтобы разрешить подключение только для определенной доменной группы:
AllowGroups winitpro\sshadmins
Либо можете разрешить доступ для локальной группы:
AllowGroups sshadmins
По умолчанию могут к openssh могут подключаться все пользователи Windows. Директивы обрабатываются в следующем порядке: DenyUsers, AllowUsers, DenyGroups,AllowGroups.
Можно запретить вход под учетными записями с правами администратора, в этом случае для выполнения привилегированных действий в SSH сессии нужно делать runas.
DenyGroups Administrators
Следующие директивы разрешают SSH доступ по ключам (SSH аутентификации в Windows с помощью ключей описана в отдельной статье) и по паролю:
PubkeyAuthentication yes PasswordAuthentication yes
Вы можете изменить стандартный SSH порт TCP/22, на котором принимает подключения OpenSSH в конфигурационном файле sshd_config в директиве Port.
После любых изменений в конфигурационном файле sshd_config нужно перезапускать службу sshd:
restart-service sshd
Подключение по SSH к Windows компьютеру
Теперь вы можете попробовать подключиться к своей Windows 10 через SSH клиент (в этом примере я использую putty).
Вы можете использовать встроенный SSH клиентом Windows для подключения к удаленному хосту. Для этого нужно в командной строке выполнить команду:
ssh [email protected]
В этом примере
alexbel
– имя пользователя на удаленном Windows компьютере, и 192.168.31.102 – IP адрес или DNS имя компьютера.
Обратите внимание что можно использовать следующие форматы имен пользователей Windows при подключении через SSH:
-
alex@server1
– локальный пользователь Windows -
[email protected]@server1
–пользователь Active Directory (в виде UPN) или аккаунт Microsoft/ Azure(Microsoft 365) -
winitpro\alex@server1
– NetBIOS формат имени
В домене Active Directory можно использовать Kerberos аутентификацию в SSH. Для этого в sshd_config нужно включить параметр:
GSSAPIAuthentication yes
После этого можно прозрачно подключать к SSH сервер с Windows компьютера в домене из сессии доменного подключается. В этом случае пароль пользователя не указывается и выполняется SSO аутентификация через Kerberos:
ssh -K server1
При первом подключении появится стандартный запрос на добавление узла в список известных SSH хостов.
Нажимаем Да, и в открывшееся окне авторизуемся под пользователем Windows.
При успешном подключении запускается командная оболочка cmd.exe со строкой-приглашением.
admin@win10tst C:\Users\admin>
В командной строке вы можете выполнять различные команды, запускать скрипты и программы.
Я предпочитаю работать в командной строке PowerShell. Чтобы запустить интерпретатор PowerShell, выполните:
powershell.exe
Чтобы изменить командную оболочку (Shell) по умолчанию в OpenSSH с cmd.exe на PowerShell, внесите изменение в реестр такой командой:
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String –Force
Осталось перезапустить SSH подключение и убедиться, что при подключении используется командный интерпретатор PowerShell (об этом свидетельствует приглашение
PS C:\Users\admin>
).
В SSH сессии запустилась командная строка PowerShell, в которой работают привычные функции: авто дополнение, раскраска модулем PSReadLine, история команд и т.д. Если текущий пользователь входит в группу локальных администраторов, то все команды в его сессии выполняются с повышенными правами даже при включенном UAC.
Логи SSH подключений в Windows
В Windows логи подключений к SSH серверу по-умолчанию пишутся не в текстовые файлы, а в отдельный журнал событий через Event Tracing for Windows (ETW). Откройте консоль Event Viewer (
eventvwr.msc
>) и перейдите в раздел Application and services logs -> OpenSSH -> Operational.
При успешном подключении с помощью к SSH серверу с помощью пароля в журнале появится событие:
EventID: 4 sshd: Accepted password for root from 192.168.31.53 port 65479 ssh2
Если была выполнена аутентификация с помощью SSH ключа, событие будет выглядеть так:
sshd: Accepted publickey for locadm from 192.168.31.53 port 55772 ssh2: ED25519 SHA256:FEHDEC/J72Fb2zC2oJNb45678967kghH43h3bBl31ldPs
Если вы хотите, чтобы логи писались в локальный текстовый файл, нужно в файле sshd_config включить параметры:
SyslogFacility LOCAL0 LogLevel INFO
Перезапустите службу sshd и провеьте, что теперь логи SSH сервера пишутся в файл C:\ProgramData\ssh\logs\sshd.log