Как установить Cygwin+OpenSSH на Windows 10
Итак есть задача, нужно на Windows 10
поднять сервис OpenSSH
дабы я со своей рабочей системы под управлением Ubuntu 18.04 Desktop
мог с ней взаимодействовать через консоль. Плюс это не сколько задача, сколько желание разобрать еще один способ удаленного взаимодействия с системой из Ubuntu
.
Как поставить OpenSSH
на Windows 10
— просто, делать буду через Cygwin
, а уже через него устанавливать пакет openssh
.
Что в заметке используется:
Операционная система Windows 10 Pro
которая развернута как виртуальная в моем тестовом полигоне Debian 10 + Proxmox 6
где я сперва отлаживаю от и до, а только после произвожу на боевом. Это не захломляет систему, плюс только работающее. Но времени трачу больше, т.к. сперва тестирую, а после применяю.
Учетная запись Login: ekzorchik
которая вхожа в локальную группу Администраторов на системе Windows 10 Pro.
Шаг №1:
Скачиваю x86_64
пакет Cygwin
через браузер и сохраняю в созданную папку c:\cygwin:
123 | C:\Users\ekzorchik>if not exist c:\cygwin mkdir c:\cygwin https://www.cygwin.com/setup-x86_64.exe |
Шаг №2:
Устанавливаю скачанный пакет через запуск на нем правой кнопкой мыши и выбор меню "Запуск от имени администратора"
Next,
Choose A Download Source: Install from Internet
и нажимаю "Далее"
Root Directory: C:\cygwin
Install For: All Users (RECOMMENDED)
и нажимаю "Далее"
Local Package Directory: C:\cygwin
и нажимаю "Далее"
Select Your Internet Connection: Use System Proxy Settings
и нажимаю "Далее"
Available Download Sites:
отмечаю самый первый и в дальнейшем буду придерживаться только егоhttp://cygwin.mirror.constant.com
и нажимаю "Далее"
и вот он долгожданный установщик пакетов Cygwin Setup - Select Packages
На заметку: Если в систему нужно установить какой либо пакет, то заново проходимся по этапам "Шаг №2"
изменяю View: Category
на Full
Шаг №3:
Устанавливаю пакет Openssh
в систему
View: Full
в поле Search:
ввожу openssh
и нажимаю клавишу Enter
затем выбираю какую версию устанавливать, я указал 8.3p1-1
и отметил галочкой установку пакета
также устанавливаю пакет nano через который буду изменять конфигурационные файлы сервисов.
после нажимаю кнопку "Далее"
текущего окна "Cygwin Setup - Select Packages"
, "Далее"
и производится скачивание зависимостей и пакета с последующей установкой
по завершению отмечаю галочками
Create icon on Desktop: отмечаю галочками
Add icon to Start Menu: отмечаю галочками
и нажимаю "Готово"
Шаг №4:
Настраиваю сервис OpenSSH.
Для этого на рабочем столе нажимаю на созданный через "Шаг №3"
ярлык "Cygwin64 Terminal"
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | ekzorchik@EKZORCH-O6250JO ~ $ ssh-host-config -y –name sshd –port 22 –user ekzorchik –pwd 712mbddr@ *** Info: Generating missing SSH host keys ssh-keygen: generating new host keys: RSA DSA ECDSA ED25519 *** Info: Creating default /etc/ssh_config file *** Info: Creating default /etc/sshd_config file *** Query: Do you want to install sshd as a service? *** Query: (Say “no” if it is already installed as a service) (yes/no) yes *** Query: Enter the value of CYGWIN for the daemon: [] *** Info: The sshd service has been installed under the LocalSystem *** Info: account (also known as SYSTEM). To start the service now, call *** Info: `net start sshd’ or `cygrunsrv -S sshd’. Otherwise, it *** Info: will start automatically after the next reboot. *** Info: Host configuration finished. Have fun! ekzorchik@EKZORCH-O6250JO ~ $ nano /etc/sshd_config Port 22 MaxAuthTries 6 MaxSessions 10 AuthorizedKeysFile .ssh/authorized_keys PasswordAuthentication yes PrintLastLog yes TCPKeepAlive yes Subsystem sftp /usr/sbin/sftp-server ekzorchik@EKZORCH-O6250JO ~ |
Шаг №5:
Запускаю созданный сервис в Windows 10 Pro
Win + X - Command Prompt (Admin)
но можно и через Cygwin64 Terminal
это также сделать.
1234567891011121314151617 | C:\Windows\system32>sc config sshd start= auto [SC] ChangeServiceConfig: успех C:\Windows\system32>net stop sshd Служба “CYGWIN sshd” не запущена. Для вызова дополнительной справки наберите NET HELPMSG 3521. C:\Windows\system32>net start sshd Служба “CYGWIN sshd” запускается. Служба “CYGWIN sshd” успешно запущена. C:\Windows\system32> |
Шаг №6:
Если в системе Windows 10
используется встроенный брандмауэр, то в нем нужно создать правила разрешающие соединение по 22/tcp:
Win + X - Command Prompt (Admin)
123456789 | C:\Windows\system32>netsh advfirewall firewall add rule name=”SSH Server” dir=in protocol=tcp localport=22 action=allow ОК. C:\Windows\system32>netstat -an | findstr :22 TCP 0.0.0.0:22 0.0.0.0:0 LISTENING TCP [::]:22 [::]:0 LISTENING |
либо же отключаем встроенный брандмауэр:
1 | C:\Windows\system32>netsh advfirewall set allprofiles state off |
Шаг №7:
Проверяю со своей основной системы под управлением Ubuntu 18.04 Desktop amd64
ноутбука Lenovo E555
что сервис openssh
на системе Windows 10
ожидает подключения:
1234567891011121314151617 | ekzorchik@navy:~$ sudo nmap 172.33.33.27 -p 22 Starting Nmap 7.60 ( https://nmap.org ) at 2020-06-14 08:52 MSK Nmap scan report for 172.33.33.27 Host is up (0.00052s latency). PORT STATE SERVICE 22/tcp open ssh MAC Address: 6E:6A:CE:96:A0:A8 (Unknown) Nmap done: 1 IP address (1 host up) scanned in 0.63 seconds ekzorchik@navy:~$ |
а теперь подключаюсь:
1234567891011 | ekzorchik@navy:~$ ssh -l ekzorchik 172.33.33.27 -p 22 Warning: Permanently added ‘172.33.33.27’ (ECDSA) to the list of known hosts. ekzorchik@172.33.33.27’s password: ekzorchik@EKZORCH-O6250JO ~ $ id uid=197608(ekzorchik) gid=197121(Отсутствует) группы=197121(Отсутствует),114(Локальная учетная запись и член группы “Администраторы”),544(Администраторы),545(Пользователи),4(ИНТЕРАКТИВНЫЕ),66049(КОНСОЛЬНЫЙ ВХОД),11(Прошедшие проверку),15(Данная организация),113(Локальная учетная запись),4095(CurrentSession),262154(Проверка подлинности NTLM),405504(Высокий обязательный уровень) |
123456789101112131415161718192021222324252627282930313233343536373839 | ekzorchik@EKZORCH-O6250JO ~ $ ekzorchik@EKZORCH-O6250JO ~ $ ls / -> мой домашний каталог bin http%3a%2f%2fcygwin.mirror.constant.com%2f cygdrive lib Cygwin.bat proc Cygwin.ico sbin Cygwin-Terminal.ico setup-x86_64.exe dev tmp etc usr home var ekzorchik@EKZORCH-O6250JO ~ $ ls /cygdrive/c/ -> корневой каталог логического диска C: системы Windows ‘$Recycle.Bin’ PerfLogs swapfile.sys cygwin ‘Program Files’ ‘System Volume Information’ ‘Documents and Settings’ ‘Program Files (x86)’ Users hiberfil.sys ProgramData Windows MSOCache Recovery pagefile.sys Soft |
Итого я получил инструмент для удаленного взаимодействия с системой Windows
через консоль и могу использовал Linux
и Windows
команды в одной консоли подключения. Это очень удобно.
Пока на этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.