Conclusion
So what is the best ssh client for Windows?
You can’t go wrong with any of the ssh clients on this list.
My personal favorites are PuTTY, SolarPutty, and Windows Terminal. Yes, I often use multiple ssh clients, it just depends on what I’m working on that day. For example, I will use PuTTY when I need a serial connection for local connectivity and will use SolarPutty when I need a quick connection to a remote device (the saved credentials and dashboard make this so easy).
There are plenty of great ssh clients to choose from. I recommend downloading a few and trying them out on your network.
I hope you enjoyed this article. Which ssh client do you use?
Настройка SSH сервера в Windows
После уставной сервера OpenSSH в Windows вам нужно изменить тип запуска службы sshd на автоматический и запустить службу с помощью PowerShell:
С помощью nestat убедитесь, что теперь в системе запущен SSH сервер и ждет подключений на 22 порту:
Проверьте, что включено правило брандмауэра (Windows Defender Firewall), разрешающее входящие подключения к Windows по порту TCP/22.
Name DisplayName Description Enabled ---- ----------- ----------- ------- OpenSSH-Server-In-TCP OpenSSH SSH Server (sshd) Inbound rule for OpenSSH SSH Server (sshd) True
Если правило отключено (состоянии Enabled=False) или отсутствует, вы можете создать новое входящее правило командой New-NetFirewallRule:
По умолчанию важным компоненты OpenSSH хранятся в следующих каталогах:
- Исполняемые файлы OpenSSH Server:
- Конфигурационный файл sshd_config (создается после первого запуска службы):
- Журнал OpenSSH:
- Файл authorized_keys и ключи:
При установке OpenSSH сервера в системе создается новый локальный пользователь sshd.
Change the Default Shell
By default when you login to a Windows installation with SSH, it defaults to the regular Command Prompt (cmd.exe). I prefer PowerShell for everyday usage, and it is easy to switch to PowerShell once you login, but you can change the default shell to save yourself some time if you are going to be using this feature often.
This is done through the Registry Editor, which will run with Administrator privileges. You need to navigate to the following key:
Create a new string called DefaultShell and give it the following value:
Restart the OpenSSH Server Service and the next time that you login with SSH, you should automatically go to PowerShell. I have tried making this work with Bash, but it doesn’t seem to be supported yet.
I sometimes wish it would go to a Bash shell instead…
If you do want to use Bash, just type in bash.exe to switch to it.
MobaXterm
MobaXterm is a tabbed Windows SSH client that simplifies remote computing for personal and professional users. This application allows remote web admins, programmers, and IT professionals to access unsecured remote servers using secure SSH connections.
Among other features, the MobaXterm Windows application enables the secure completion of remote administration tasks, including transferring files and executing commands.
SSH Features
- Tabbed Unix terminal: Access all necessary network tools, including SSH, telnet, X11, VNC, FTP, and more.
- SSH gateway (jump proxy): When creating a session using an SSH, RDP, or VNC protocol, choose an SSH gateway to bypass firewalls and connect securely.
- SSH tunneling: Securely transport data from one port to another through SSH tunneling.
- X11 server: Display remote applications on your Windows desktop and transfer files through a secure X server.
Price
This SSH client is free for at-home use. The professional edition costs $69 per user, with volume discounts available.
Использование пароля
Начнем с инструкции о том, как подключиться к удаленному серверу через SSH по логину и паролю. Это самый простой способ. Хостер предоставляет вам IP-адрес, логин и пароль. Этого достаточно для того, чтобы установить соединение с удаленным сервером.
Подключение на Windows
Моя основная система — Windows. Раньше для подключения к серверу через SSH я пользовался сторонней утилитой PuTTY, потому что в операционной системе не было встроенного компонента. В «десятке» он появился, так что теперь можно подключаться к SSH через командную строку (cmd).
Чтобы включить встроенный в систему OpenSSH:
- Откройте «Параметры» (Win + I) и перейдите в раздел «Приложения».
- Выберите опцию «Управление дополнительными компонентами».
- Нажмите «Добавить компонент».
- Выберите в списке OpenSSH Client и нажмите «Установить».
- После завершения установки перезагрузите систему.
Теперь разберемся, как подключиться к SSH через cmd. Запустите командную строку и выполните запрос вида ssh root@185.104.114.90.
Значение root — логин для подключения, вы получили его в письме при создании сервера. 185.104.114.90 — IP-адрес сервера. Его можно посмотреть в панели управления сервером или в том же письме, которое прислал хостер. У команды может быть также дополнительный параметр -p, после которого прописывается номер порта. По умолчанию используется порт 22. Если у вас настроен другой порт, нужно явно его указать, — например, полный адрес может выглядеть так: ssh root@185.104.114.90 -p 150.
После выполнения команды клиент SSH предложит добавить устройство в список известных. Введите в командной строке yes и нажмите на Enter. Затем укажите пароль для доступа к серверу. На этом подключение к серверу через SSH завершено — теперь все команды будут выполняться на удаленной машине, к которой вы подключились.
На версиях младше Windows 10 1809 нет встроенной поддержки протокола OpenSSH. В таком случае понадобится сторонняя утилита. Смотрим, как через PuTTY подключиться по SSH:
- Запустите PuTTY.
- На вкладке Session укажите Host Name (IP-адрес сервера), Port (по умолчанию 22, но если вы в конфигурации сервера указали другой порт, нужно задать его номер).
- Убедитесь, что тип соединения установлен SSH.
- Нажмите на кнопку Open, чтобы подключиться.
Если вы ввели правильные данные, появится окно консоли, в котором нужно указать логин и пароль для подключения к серверу. При первом запуске также отобразится запрос на добавление устройства в список известных.
Подключение на Linux и macOS
Теперь посмотрим, как подключиться по SSH через терминал на Linux. Для этого не требуется установка дополнительных компонентов, все работает «из коробки».
- Запустите терминал. Обычно для этого используется сочетание клавиш Ctrl+Alt+T. Найти терминал также можно по пути «Главное меню» — «Приложения» — «Система».
- Выполните команду для подключения. Синтаксис такой же, как на Windows, — ssh root@185.104.114.90. Если порт не стандартный, то нужно явно его указать: например, ssh root@185.104.114.90 -p 150. Вместо root вы указываете свое имя пользователя, а вместо 185.104.114.90 — IP-адрес своего сервера.
- Если хост и порт указаны верно, на следующем шаге появится запрос на ввод пароля. При первом подключении также будет предложение добавить новое устройство в список известных. Для этого введите yes и нажмите на клавишу Enter.
На этом подключение завершено. Теперь все команды, которые вы вводите в терминале, будут выполняться на удаленной машине.
Если IP-адрес или порт указаны неверно, то на экране появится сообщение об ошибке — Connection Refused. Это может также говорить о том, что доступ запрещен брандмауэром на удаленном сервере (если вы его не отключили). Чтобы разрешить подключение через SSH:
- на сервере с Ubuntu/Debian выполните команду $ sudo ufw allow 22/tcp;
- на сервере CentOS/Fedora выполните команду $ firewall-cmd —permanent —zone=public —add-port=22/tcp.
Цифра 22 в синтаксисе — номер порта. Если вы используете другой порт, то укажите его явно.
Если вы знаете как подключиться через SSH на Linux, то справитесь с этой задачей и на macOS. В операционной системе Apple тоже есть встроенный терминал. Синтаксис команды для подключения не меняется: ssh root@185.104.114.90, где root — ваш логин, а 185.104.114.90 — IP-адрес сервера, с которым вы устанавливаете соединение.
Conclusion
Since this is basically the same OpenSSH client you find on Linux machines, some commands such as are also available. This facilitates the upload and download of files to/from remote servers. For those that prefer the command line, this means they don’t need to install FTP clients such as FileZilla anymore. It’s also possible to set up SSH tunnels with the command. We may cover this in a future tutorial, since it makes some “impossible” things possible, like accepting outside connections on your local computer, even if your ISP doesn’t offer you a private external IP address (more clients sit behind the same Internet IP address).
Alexandru Andrei
Fell in love with computers when he was four years old. 27 years later, the passion is still burning, fueling constant learning. Spends most of his time in terminal windows and SSH sessions, managing Linux desktops and servers.
Subscribe to our newsletter!
Our latest tutorials delivered straight to your inbox
Как подключиться по SSH с помощью встроенного клиента в Windows 10
Не так давно в Windows 10 наконец-то появилась встроенная утилита для работы с SSH. Лучше поздно, чем никогда и иногда действительно безопаснее пользоваться встроенными инструментами.
Активация клиента
Для использования утилиты нужно сначала ее активировать, потому что по умолчанию она отключена. Для этого нужно открыть Параметры Windows и открыть раздел Приложения.
Затем кликаем по Приложения и возможности
Далее нажимаем Добавить новый компонент, кликаем по OpenSSH Client и нажимаем Установить.
После чего дожидаемся завершения установки. И затем нужно обязательно перезагрузить Windows, чтобы настройки вступили в силу.
Подключение
Как только запустится рабочий стол, нам нужно запустить командную строку Windows. Для этого нужно нажать комбинацию клавиш Win + R.
Появится окно «Выполнить». В этом окне в поле вводим и нажимаем Enter
В терминале формулируем команду в следующем виде: . В примере логин у нас , а IP-сервера :
После чего потребуется ввод пароля от root:
uxumax@debian9:~$ ssh root@80.90.255.255 root@80.90.255.255's password: Linux debian9 5.4.40-04224-g891a6cce2d44 #1 SMP PREEMPT Tue Jun 23 20:21:29 PDT 2020 x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. root@server:~#
Как видим все отлично работает. Теперь все введенные команды будут выполнятся на сервере. Чтобы выйти с сервера, достаточно закрыть окно командной строки или ввести .
Если вам также требуется подключаться по SSH из Linux, то возможно вам будет интересна эта статья.
ZOC Terminal
Another highly customizable SSH client is ZOC Terminal. This Windows SSH client and terminal emulator supports many types of communication, emulation, file transfer protocols, and more. Users can configure the software to fit their needs due to a large number of options and the software’s convenient tabbed interface.
Features
- SSH Security: Keep your data secure with private-key, keyboard-interactive, or password authentication.
- SSH port forwarding: Seamlessly transfer traffic to the remote server through a secure, encrypted connection.
- Jump proxy support: Use HTTP, SOCKS4, or SOCKS5 to connect to a server via a proxy host.
- SSH client protocols: Make secure connections to remote servers via version one and two SSH protocols.
- SSH-Keep-Alive: Minimize interruptions due to disconnection issues while you work.
Price
Users can access ZOC Terminal by making a one-time license purchase. A single-user license costs $79.99, and site and enterprise licenses are also available. Licenses include updates and support.
Как его применить
Для активации установленных корректировок используют отдельные команды. Этапы работы:
для стандартного подключения запускают наименование «$ ssh user@host»
Внимание! В стандартном режиме необходимо сначала запустить подключение к серверу, а затем начинать вводить сочетания кодированных символов. Встроенный инструмент позволяет выполнять нужные действия без открытия удаленного блока;
для перенаправления скрипта действий с помощью интерпретатора bash запускают комбинацию «- $ ssh user@host `bash -s` ˂ script.sh»;
для запуска бекапа к удаленному сервису и восстановления сбившихся настроек используют символику «$ sudo dd if=/dev/sda | ssh user@host `dd of=sda.img`, затем $ ssh user@host `dd if=sda.img` | dd of=/dev/sda».
Кроме того, пользователь может выполнить запуск удаленного доступа без пароля командой «$ ssh-keygen -t rsa». Операция позволит создать ключ. В процессе потребуется ответить на предложенные ОС вопросы, поле Passphare необходимо оставить пустым.
Использование удаленного доступа с помощью встроенного инструмента позволит запустить взаимодействие между несколькими серверами
Важно заранее ознакомиться с предлагаемыми настройками – активация некорректных команд может привести к сбою работы операционки
Method 2: Use SSH in Windows Subsystem for Linux
Windows Subsystem for Linux (WSL) enables you to run native Linux command-line tools directly on Windows 10. If you are a system administrator, WSL is probably an overkill for just using SSH because it would install and run a Linux distro (without graphical user interface) on your Windows 10 desktop. WSL is created for web developers or those who need to work on open-source projects. You can use not only SSH but also other Linux command line tools (Bash, sed, awk, etc).
Open the Microsoft Store and enter in the search box. Select and install a Linux distro of your choice.
For example, I choose Ubuntu and click the button to install it.
Once your Linux distro is installed, open the and select -> . Tick on the checkbox of Windows Subsystem for Linux to enable this feature. (You may need to reboot your Windows PC for this change to take effect.)
Next, you can launch the Linux distro from the start menu by search the distro’s name. The first time you launch it, you need to create a user and set a password.
After that, you can use the ssh command like below to connect to a Linux server or PC that runs a SSH server.
ssh
Управление идентификацией
$ cat ~/.ssh/config
StrictHostKeyChecking no
Парольная аутентификация
server# apt install sshpass server# sshpass -p 'strongpassword' ssh vagrant@node1 server# sshpass -p cisco ssh switchN server# sshpass -p cisco ssh switch1 sh int | grep line
Аутентификация с использованием ключей ssh
Настройка sshd на использование ключей
gate# less /etc/ssh/sshd_config
... #PubkeyAuthentication yes #AuthorizedKeysFile %h/.ssh/authorized_keys ...
Генерация ключей
user1@client1:~$ ssh-keygen
... Enter passphrase (empty for no passphrase): password1 ...
user1@client1:~$ ls .ssh/
Распространение публичных ключей
linux$ ssh-copy-id gate linux$ ssh-copy-id server freebsd$ ssh-copy-id -i .ssh/id_rsa.pub gate
вручную
user1@client1$ ssh gate "mkdir .ssh" user1@client1$ scp .ssh/id_rsa.pub gate:.ssh/authorized_keys или user1@client1$ cat .ssh/id_rsa.pub | ssh gate "cat >> .ssh/authorized_keys"
Использование ssh_agent
user1@client1$ ssh-agent SSH_AUTH_SOCK=/tmp/ssh-JaQgNr4492/agent.4492; export SSH_AUTH_SOCK; SSH_AGENT_PID=4493; export SSH_AGENT_PID; echo Agent pid 4493; user1@client1$ SSH_AUTH_SOCK=/tmp/ssh-JaQgNr4492/agent.4492; export SSH_AUTH_SOCK; user1@client1$ SSH_AGENT_PID=4493; export SSH_AGENT_PID;
или
user1@client1$ eval `ssh-agent -s`
user1@client1$ ssh-add Enter passphrase for /root/.ssh/id_rsa: ... student@client1$ ssh-add -l ... user1@client1$ ssh gate user1@client1$ ssh server
Аутентификация с использованием протокола GSSAPI
Регистрация принципалов сервиса в KDC и перемещение ключа сервиса на сервер
Debian/Ubuntu (MIT)
root@server:~# kadmin.local
kadmin.local: addprinc -randkey host/gate.corpX.un ... kadmin.local: listprincs kadmin.local: ktadd -k gatehost.keytab host/gate.corpX.un ... kadmin.local: quit
server# scp gatehost.keytab gate:
FreeBSD (Heimdal)
server# kadmin -l
kadmin> add -r host/gate.corpX.un ... kadmin> list * kadmin> ext -k gatehost.keytab host/gate.corpX.un kadmin> quit
server# scp gatehost.keytab gate:
Microsoft Active Directory
Добавляем пользователя в AD
Login: gatehost Password: Pa$$w0rd
Пароль не меняется и не устаревает
C:\>ktpass -princ host/gate.corpX.un@CORPX.UN -mapuser gatehost -pass 'Pa$$w0rd' -out gatehost.keytab C:\>setspn -L -U gatehost C:\>pscp gatehost.keytab gate:
Samba4
server# samba-tool user create gatehost server# samba-tool user setexpiry gatehost --noexpiry server# samba-tool spn add host/gate.corpX.un gatehost server# samba-tool spn list gatehost server# samba-tool domain exportkeytab gatehost.keytab --principal=host/gate.corpX.un
Добавление ключа в системный keytab
Debian/Ubuntu (MIT)
root@gate:~# ktutil
ktutil: rkt /root/gatehost.keytab ktutil: list ktutil: wkt /etc/krb5.keytab ktutil: quit root@gate:~# klist -ek /etc/krb5.keytab
FreeBSD (Heimdal)
gate# ktutil copy /root/gatehost.keytab /etc/krb5.keytab gate# touch /etc/srvtab gate# ktutil list ...
gate# cat /etc/ssh/sshd_config
... GSSAPIAuthentication yes ...
client1# less /etc/ssh/ssh_config
... GSSAPIAuthentication yes ...
Настройка windows клиента (Centrify putty) на использование GSSAPI
Hostname: gate.corpX.un SSH->Auth Attempt "keyboard intractive": no SSH->Kerberos Attempt Kerberos Auth: yes User name portion of user principal name: yes
gate# kinit -V -k -t /etc/krb5.keytab host/gate.corpX.un@CORPX.UN user1@client1$ kinit user1@client1$ kinit -S host/gate.corpX.un@CORPX.UN или user1@client1$ kvno host/gate.corpX.un@CORPX.UN user1@client1$ ssh -vv gate.corpX.un gate# service ssh stop gate# mkdir /run/sshd gate# /usr/sbin/sshd -d
Заключение
Постарался рассмотреть все наиболее значимые аспекты в работе с бесплатным гипервизором от Microsoft. Можете сравнить его с бесплатным гипервизором на kvm — proxmox, который я рассматривал в своей статье установка и настройка proxmox. В proxmox мне нравится управление через web браузер. Не нужно ничего ставить на компьютер. После установки гипервизор сразу готов к работе.
В hyper-v удобно, что все системы его поддерживают без проблем. На kvm, к примеру, в proxmox, после установки windows систем в качестве гостевых машин, нужно будет устанавливать драйвера с отдельного диска, либо использовать готовые образы, где они будут уже интегрированы. Мелочь, но все равно не так удобно.
Буду рад любым замечаниям по статье, подсказкам или указаниям на ошибки. Так же было бы любопытно узнать, какой гипервизор вы предпочитаете использовать и по какой причине. Какие преимущества по сравнению с остальными гипервизорами вы видите в своем выборе.
Прошлые статьи по Hyper-V:
- Установка и настройка Windows Hyper-V Server 2012 R2
- Установка и настройка Windows Hyper-V Server 2016
- Добавить iSCSI диск на сервер Windows Hyper-v
- Установка и настройка apcupsd на Hyper-V Server