Използване на SSH за сигурно използване на връзката с отдалечен работен плот към Windows

Страницата се актуализира :
Дата на създаване на страница :

Работна среда

Отдалечена връзка с Windows
  • Прозорци 11
Отдалечена връзка от Windows
  • Прозорци 10
ОпенСХ
  • OpenSSH_for_Windows_8.1p1, ЛибреССЛ 3.0.2

Предпоставки

Отдалечена връзка с Windows
  • Windows 10 или по-нова версия (изисква се Pro или друго издание). Това обаче не важи, ако OpenSSH може да се приготви отделно.
  • Windows Server 2019 или по-нова версия. Това обаче не важи, ако OpenSSH може да се приготви отделно.
Отдалечена връзка от Windows
  • Windows (повечето версии са възможни)
  • Windows Server (повечето версии са възможни)

Отначало

След като изградите среда на Windows в интернет в облака или VPS, често използвате връзка с отдалечен работен плот, за да работите с отдалечената дестинация на Windows.

При връзката с отдалечен работен плот съдържанието на комуникацията е шифровано и ако потребителското име и паролата не изтекат, други няма да влязат без разрешение. Винаги има притеснение, че хората ще се опитат да влязат отвсякъде.

Някои големи облаци имат защитни стени, отделни от виртуалните машини, и има функция за ограничаване на източника на връзка. Тези функции може да не са налични във всички услуги. Особено в среди, изградени с нисък бюджет, има много случаи, в които такива функции не са налични.

Затова този път бих искал да огранича максимално източника на връзка, като добавя функцията SSH . Тъй като се използват частният ключ и публичният ключ, стига частният ключ да не е изтекъл, възможността за отдалечено влизане от друга среда може да бъде сведена до минимум.

В този случай ще използваме OpenSSH за изграждане на SSH средата.

Създаване на отдалечена дестинация Windows среда

Изградете среда на Windows, която ви позволява да се свързвате отдалечено по интернет. Няма значение къде е построена, стига да минава през интернет, но за тази проверка тя ще бъде изградена като виртуална машина на Microsoft Azure. Стъпките за надграждане върху Azure не са свързани с този съвет, така че ще ги пропусна. Тъй като порт 22 ще се използва този път, ако използвате Azure, уверете се, че комуникацията на порт 22 преминава през настройките на виртуалната машина на Azure.

Ако строите в среда, различна от Azure, се уверете, че сте в позиция, в която можете да осъществите връзка с отдалечен работен плот към Windows за вашата среда.

В допълнение, версията на Windows е насочена към Windows 10 или по-нова версия, или Windows Server 2019 или по-нова версия, което улеснява изграждането на OpenSSH среда. Тя може да бъде реализирана в по-ранна среда, но отнема малко повече време и усилия, защото трябва да изтеглите и настроите OpenSSH отделно.

В този случай процедурата е същата като за SFTP, така че, моля, вижте следните съвети.

Настройване на OpenSSH

От тук ще работим в отдалечената среда на Windows. Първо, свържете се с отдалеченото местоназначение с връзка с отдалечен работен плот. Ако вашият облак или VPS предоставя конзола, можете да я използвате. Тъй като този път работим в среда на Windows 11, стъпките може да са малко по-различни в други версии.

Отворете менюто "Старт" и изберете Настройки.

Изберете приложение.

Изберете Допълнителни функции.

Изберете Показване на функции.

Има "OpenSSH Server" малко по-надолу в списъка, така че проверете го и кликнете върху "Next".

Щракнете върху Инсталирай.

Когато инсталацията е завършена и "OpenSSH сървър" е добавен към списъка по-долу, вие сте готови.

Конфигурация на услугата за OpenSSH

Щракнете с десния бутон върху менюто Старт и изберете Управление на компютъра.

Изберете Услуги от списъка вляво.

Намерете "OpenSSH SSH Server" в средния списък, щракнете с десния бутон и изберете "Properties".

Когато се свързваме дистанционно, искаме сървърът OpenSSH да работи, затова задайте "Тип стартиране" на "Автоматичен".

Тъй като в момента не работи, ще го започна тук, включително и да го настроя.

След като стартирате, щракнете върху бутона OK, за да го затворите. Тя трябва да се изпълнява в списъка.

Конфигуриране на OpenSSH

В началното състояние удостоверяването с частен ключ е забранено, така че го настройте. Отворете следната папка в Explorer.

  • C:\ProgramData\ssh

Горната папка обаче може да е скрита папка, така че моля, направете я видима, като зададете опциите на Explorer.

В папката sshd_config се извиква файл, така че го отворете с текстов редактор като Notepad. Тъй като този път ще направим промени, моля, копирайте и дублирайте като резервно sshd_config_old копие преди промяната.

PubkeyAuthentication yes Търся: Този елемент е настройка за това дали да се разреши удостоверяване с таен ключ. По подразбиране той е деактивиран и казва , но е коментиран, yes така че не го коментирайте.

Преди промяната

#PubkeyAuthentication yes

След промяната

PubkeyAuthentication yes

PasswordAuthentication yes Търся: Този елемент е настройка за това дали да се разреши удостоверяването с парола. Той е активиран по подразбиране и дори да активирате удостоверяване с частен ключ, той е безсмислен от гледна точка на сигурността, ако остане активиран, така че премахнете коментара и no задайте .

Преди промяната

#PasswordAuthentication yes

След промяната

PasswordAuthentication no

Коментирайте следния ред в края: Това е ключовата настройка за групата на администраторите и ние ще я деактивираме, защото в този случай ще поддържаме влизания на потребител.

Преди промяната

Match Group administrators
       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

След промяната

#Match Group administrators
#       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

След като запишете файла след OpenSSH SSH Server промяната, рестартирайте услугата, за да отразите настройките.

Ако искате да смените порта

Ако искате да промените SSH порта, променете следното.

Преди промяната

#Port 22

След промяната

#Port <任意の番号>

Чрез промяна на номера на порта, портът по подразбиране няма да бъде атакуван, което ще доведе до по-силна сигурност. От друга страна, това увеличава сложността на операцията, така че трябва да бъдете внимателни.

Ако промените номера на порта, трябва да зададете порт, различен от 22, когато се свързвате.

Създаване на частни и публични ключове

Това е задача от страна на клиента. Всъщност няма значение къде работите. Внимавайте обаче да не изтече частният ключ, който сте създали.

Ако имате Windows 10 или по-нова версия, Windows Server 2019 или по-нова версия, клиентът OpenSSH е инсталиран по подразбиране, така че лесно можете да го създадете с команда. В други среди ще трябва да инсталирате отделен OpenSSH клиент или да използвате отделен инструмент.

Следните съвети са за SFTP, но моля, обърнете се към тях за създаване на OpenSSH клиент.

В клиентската среда стартирайте команден ред, PowerShell, терминал или всеки инструмент, който може да изпълнява команди.

Тъй като ще създавате файл, преминете cd към всяка директория с команда.

Изпълнете следната команда:

ssh-keygen -t rsa -f id_rsa

Можете да зададете парола (парола) за ключа, така че моля, въведете я, ако е необходимо. Ако зададете фраза за достъп, защитата ще бъде подобрена, но това ще увеличи времето и усилията за въвеждане на фразата за достъп в по-късния процес.

Създадени са публичен ключ (id_rsa.pub) и частен ключ (id_rsa).

Публичният ключ (id_rsa.pub) ще бъде поставен на отдалеченото местоназначение по-късно. Частният ключ може да се намира навсякъде в отдалечения клиент, но трябва да се намира в папка, която може да бъде достъпна само от акаунта, който се използва за целите на сигурността. По принцип мисля, че няма проблем, ако го поставите в следната папка от страна на клиента. Ако използвате OpenSSH клиента, той ще прегледа тази папка по подразбиране.

  • C:\Users\<ユーザー名>\.ssh

Ако не можете да създадете горната папка в Explorer, можете да я създадете със следната команда.

cd C:\Users\<ユーザー名>
mkdir .ssh

Поставяне на публични ключове

Това е дистанционна операция. Поставете създадения публичен ключ (id_rsa.pub) на отдалеченото местоназначение. Преместете този файл в следната папка: <ユーザー名> е името на потребителския акаунт, в който ще влезете, когато всъщност се свържете дистанционно.

  • C:\Users\<ユーザー名>\.ssh

Ако нямате папка и не можете да създадете папка в Explorer, можете да създадете папка със следната команда.

cd C:\Users\<ユーザー名>
mkdir .ssh

Променете внедрения файл authorized_keys с публичен ключ на . Това е всичко.

В зависимост от вашата среда може вече authorized_keys да разполагате с файла. Това може да се случи, ако сте настроили SSH връзка за други цели. В този случай authorized_keys сте регистрирали файла, като отворите файла и файла с Notepad и т.н., и изброите id_rsa.pub съдържанието на id_rsa.pub на следващия ред на authorized_keys. Можете да регистрирате няколко публични ключа в authorized_keys.

Свържете се със SSH

При свързване с командата OpenSSH

Има различни начини за свързване с SSH, но нека започнем с командна връзка. Всъщност връзката с най-малък брой стъпки е по команда. Като предпоставка трябва да имате инсталиран OpenSSH клиент.

Стартирайте командния инструмент по ваш избор (Command Prompt, PowerShell, Terminal).

Въведете следната команда:

Формат на командата

ssh -i <秘密鍵ファイルパス> -L <ローカルの空いているポート>:127.0.0.1:3389 <接続先のユーザーアカウント名>@<接続先サーバーIPアドレス、またはホスト名>

Следва обяснение на параметрите. Настройте го според вашата среда.

на променлив параметър
ИмеОписание
сш Декларация за използване на SSH с OpenSSH.
-аз Декларация за използване на файл с частен ключ.
< път до файл с частен ключ> Опишете местоположението на файла с частния ключ, който сте създали. C:\Users\<ユーザー名>\.ssh Пътят не е задължителен. В противен случай се изисква абсолютен или относителен път.
Тази декларация определя порта, който трябва да се използва локално и дистанционно при свързване с отдалечено местоназначение.
< местно свободно пристанище> Връзката с отдалечен работен плот обикновено използва порт 3389, но можете да се свържете с помощта на всеки порт. Няма значение какъв номер е, стига да е безплатен.
127.0.0.1 Това е IP адресът на хоста, който разпознава откъде е свързано отдалеченото местоназначение. По принцип 127.0.0.1 е добре.
3389 Номерът на порта, който трябва да се използва в отдалеченото местоназначение. Отдалечената дестинация обикновено е свързана с порт 3389 с връзка с отдалечен работен плот, така че може да бъде оставена такава, каквато е.
< име на потребителския акаунт, към който искате да се свържете> Задайте към кой акаунт искате да се свържете в отдалеченото местоназначение.
< IP адрес или име на хост на сървъра, към който да се свържете> Указва отдалечения сървър местоназначение.

Примерен вход

ssh -i id_rsa -L 13389:127.0.0.1:3389 TestUser@52.140.221.194

Първият път ще бъдете подканени за клавиш, така че yes въведете и натиснете клавиша Enter.

Ако имате зададена фраза за достъп за вашия личен ключ, трябва да я въведете.

Следното ще бъде в свързано състояние. Можете да видите, че се показва потребителят от страна на сървъра, а не клиентът. Докато този прозорец се показва, той е свързан, така че, моля, не го затваряйте. Ако го затворите, връзката ще бъде прекъсната.

При свързване с PuTTY

Тук ще се опитаме да се свържем с SSH с инструмент, наречен PuTTY.

Конвертиране на частния ключ

Първо, ако използвате PuTTY, ще трябва да конвертирате частния ключ. Мисля, че има "puttygen .exe" в прикачения инструмент, така че, моля, стартирайте.

Изберете "Реализации -> Импортиране на ключ" от менюто.

Изберете частния ключ, който сте създали, в този случай "id_rsa".

Ако сте задали фраза за достъп, въведете я.

Изберете "File -> Save private key" от менюто.

「. .ppk" файл.

Веднъж създаден, вие сте готови.

Конфигуриране на PuTTY

Изстрелване на замазка.exe.

Въведете IP адреса на средата, към която искате да се свържете. Ако имате домейн, можете да се свържете с име на домейн.

Изберете Връзка -> Данни от менюто вляво. В полето Потребителско име за автоматично влизане въведете името на акаунта на средата, към която искате да се свържете.

От менюто вляво изберете Връзка -> SSH -> Тунели. Въведете всеки от тях в полето за въвеждане по-долу и кликнете върху бутона "Добави".

Параметър Име Стойност Забележки
Порт източник 13389 Всяко свободно пристанище ще свърши работа. Ще го използвам по-късно
Назначение 127.0.0.1:3389

Когато се добави, тя трябва да изглежда така:

След това изберете "Connection -> SSH -> Auth -> Cledentioals" от менюто вляво и кликнете върху бутона Browse за "Private key file for authentication".

Изберете личния ключ, който сте записали.

Изберете "Сесия" в менюто вляво, въведете име по ваш избор за Запазване на сесиите и кликнете върху бутона Запазване. От следващия път нататък е добре, ако заредите тази настройка.

След като потвърдите запазването, кликнете върху бутона "Отвори".

Следният екран ще се покаже при свързване за първи път. Щракнете върху бутона Приеми .

Ще видите екран, който прилича на команден ред. Ако имате фраза за достъп за частния ключ, въведете я.

Ако показваното съдържание се промени, както е показано по-долу, то ще бъде свързано. Можете да видите, че се показва потребителят от страна на сървъра, а не клиентът. Докато този прозорец се показва, той е свързан, така че, моля, не го затваряйте. Ако го затворите, връзката ще бъде прекъсната.

Осъществяване на връзка с отдалечен работен плот със SSH

Сега, нека направим връзка с отдалечен работен плот, докато сме свързани с SSH.

Когато се свързвате, частта на компютъра не е действителният отдалечен адрес, а "localhost:< > името на порта, посочено в SSH връзката". В примера е посочен 13389, така че тук ще се свържем с "localhost:13389".

Ако се покаже екранът за удостоверяване, можете да прецените, че връзката е завършена. Въведете вашето потребителско име и парола, за да се свържете.

Ако можете да се свържете по този начин, значи сте успели.

Забраняване на обикновени връзки с отдалечен работен плот в настройките на защитната стена

По време на предишния елемент вече можете да се свързвате с отдалечен работен плот чрез SSH. В това състояние обаче "Връзка с отдалечен работен плот от SSH" е добавена само към "Нормална връзка с отдалечен работен плот". По отношение на сигурността, тя не добавя нищо. Така че следващото нещо, което трябва да направите, е да предотвратите "нормална връзка с отдалечен работен плот".

Ако направите тази настройка, няма да можете да се свързвате, освен за "връзка с отдалечен работен плот чрез SSH", така че ако се забърквате с настройките, може да нямате средства за отдалечено свързване. Затова не забравяйте да проверите предварително, че е възможна "връзка с отдалечен работен плот чрез SSH" и да можете да работите с отдалечената среда с други средства, дори ако клиентът, с който се опитвате да се свържете, изчезне.

Тук конфигурирайте настройките на защитната стена в "Връзка с отдалечен работен плот чрез SSH". Това е така, защото ако извършите операцията с "нормална връзка с отдалечен работен плот", тя ще бъде прекъсната в момента, в който зададете защитната стена.

Преглед на защитната стена на Windows защитника с разширена защита. В зависимост от версията на Windows, местоположението на дисплея ще варира, така че моля, покажете го според тази версия.

Изберете Входящи правила от менюто вляво.

В средния списък намерете "Отдалечен работен плот - потребителски режим (TCP In)" и отворете свойствата му.

Изберете раздела Обхват, променете локалния IP адрес на Тези IP адреси и щракнете върху бутона Добави.

Въведете 127.0.0.1 и щракнете върху бутона OK. Това ще предотврати връзки с отдалечен работен плот от всяко място, различно от 127.0.0.1. 127.0.0.1 е IP адресът, който сочи към вашата машина. Ако въведете грешна стойност, може да не успеете да се свържете отникъде, така че бъдете внимателни.

Щракнете върху бутона OK, за да потвърдите.

За момента това само по себе си е противодействие, но нека зададем и "Отдалечен работен плот - потребителски режим (UDP Receive)".

Уверете се, че не можете да се свържете дистанционно с нищо друго освен SSH

Сега опитайте да осъществите връзка с отдалечен работен плот от друг компютър, който не използва SSH.

Ако можете да се свържете, ще се покаже екранът за удостоверяване. Добре е, ако можете да потвърдите, че връзката не може да бъде направена, както е показано по-долу.

Резюме

С най-новия Windows вече е лесно да се въведе SSH сървър. Чрез добавяне на настройки вече можете лесно да увеличите сигурността на връзката с отдалечения работен плот. Въпреки това, тъй като тя е отговорна само за мерките за сигурност в самия Windows, Ако искате да го направите по-сигурен, мисля, че е за предпочитане да настроите отделен SSH сървър или защитна стена, преди да се свържете с Windows.

Също така, можете да зададете сигурност плътно с помощта на SSH, но когато е твърде трудно, никой не може да се свърже поради оперативна грешка. Внимавайте да не свършите с това.