Технологията SSH (Secure Shell) позволява сигурно дистанционно управление на компютъра чрез защитена връзка. SSH криптира всички прехвърлени файлове, включително пароли, и също така предава всеки мрежов протокол. За да може инструментът да работи правилно, е необходимо не само да го инсталирате, но и да го конфигурирате. Бихме искали да говорим за продукта на основната конфигурация в тази статия, като за пример вземем най-новата версия на операционната система Ubuntu, на която ще се намира сървъра.
Съдържанието
Ако не сте завършили инсталирането на сървъра и клиентските компютри, първо трябва да го направите, тъй като цялата процедура е доста проста и не отнема много време. За подробни указания по тази тема вижте нашата друга статия на следния линк. Той също така показва процедурата за редактиране на конфигурационния файл и тестване на SSH, така че днес ще се спрем на други задачи.
Още подробности: Инсталиране на SSH-сървър в Ubuntu
Новоинсталираният SSH няма посочените ключове за свързване от сървъра към клиента и обратно. Всички тези параметри трябва да бъдат зададени ръчно веднага след добавяне на всички компоненти на протокола. Ключовата двойка работи с алгоритъма RSA (съкратено от имената на разработчиците на Rivest, Shamir и Adleman). Благодарение на тази криптосистема специалните клавиши се криптират с помощта на специални алгоритми. За да създадете чифт публични ключове, трябва само да въведете подходящите команди в конзолата и да следвате инструкциите, които се появяват.
ssh-keygen
и след това натиснете клавиша Enter . Сега има създаден чифт ключове - тайни и публични, които ще бъдат използвани за по-нататъшна връзка между компютрите. Просто трябва да поставите ключа на сървъра, така че SSH удостоверяването да е успешно.
Има три метода за копиране на ключове. Всеки един от тях ще бъде оптимален в различни ситуации, където например един от методите не работи или не е подходящ за конкретен потребител. Ние предлагаме да се разгледат всички три варианта, като се започне с най-прости и ефективни.
Опция 1: ssh-copy-id команда
Командата ssh-copy-id
е вградена в операционната система, така че не трябва да се инсталират допълнителни компоненти, за да се стартира. Следвайте простия синтаксис, за да копирате ключа. В "Терминал" трябва да въведете ssh-copy-id username@remote_host
, където потребителско име @ remote_host е името на отдалечения компютър.
Когато се свържете за първи път, ще получите текст за уведомяване:
The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
Трябва да укажете опцията да, за да продължите връзката. След това, програмата самостоятелно ще търси ключа под формата на файла id_rsa.pub
, който е създаден по-рано. Успешното откриване ще покаже следния резултат:
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password:
Задайте паролата от отдалечения хост, за да може програмата да я въведе. Инструментът ще копира данни от файла на публичния ключ ~ / .ssh / id_rsa.pub , след което съобщението ще се появи на екрана:
Number of key(s) added: 1
Сега опитайте да влезете в машината с: "ssh '[email protected]'"
провери го.
Появата на такъв текст означава, че ключът е бил успешно изтеглен на отдалечения компютър и сега няма да има проблеми с връзката.
Опция 2: Копирайте публичния ключ чрез SSH
Ако не можете да използвате споменатата по-горе помощна програма, но имате парола за влизане в отдалечения SSH сървър, можете ръчно да заредите потребителския си ключ, като по този начин осигурите по-нататъшно стабилно удостоверяване при свързване. Използва се за тази команда cat , която чете данните от файла, и след това те ще бъдат изпратени на сървъра. В конзолата ще трябва да въведете реда
cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"
cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"
.
Когато се появи съобщение
The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
продължете да се свързвате и въведете паролата за влизане в сървъра. След това публичният ключ автоматично ще бъде копиран в края на конфигурационния файл на authorized_keys .
Опция 3: Ръчно копиране на публичния ключ
Ако няма достъп до отдалечен компютър чрез SSH сървър, всички горепосочени стъпки се извършват ръчно. За да направите това, първо научете за ключа на сървъра PC чрез командата cat ~/.ssh/id_rsa.pub
.
На екрана ще се появи следният ред: ssh-rsa + ключ в виде набора символов== demo@test
. След това отидете на работа на отдалеченото устройство, където създавате нова директория чрез mkdir -p ~/.ssh
. Освен това той създава authorized_keys
файл. След това поставете ключа, който сте научили по-рано чрез echo + строка публичного ключа >> ~/.ssh/authorized_keys
. След това можете да опитате да удостоверите автентичността си със сървъра, без да използвате пароли.
В предишния раздел научихте за трите метода за копиране на ключ на отдалечен компютър към сървър. Такива действия ще ви позволят да се свържете без да използвате парола. Тази процедура се изпълнява чрез командния ред чрез въвеждане на shh ssh username@remote_host
, където потребителско име @ remote_host е потребителското име и хоста на желания компютър. Когато се свържете за първи път, ще бъдете уведомени за непозната връзка и можете да продължите, като изберете опцията yes .
Връзката ще се осъществи автоматично, ако по време на създаването на двойката ключове не е посочена парола. В противен случай първо трябва да го въведете, за да продължите да работите със SSH.
Успешната настройка на копирането на ключовете се разглежда в ситуация, в която можете да влезете в сървъра без да използвате парола. Въпреки това, възможността за удостоверяване по този начин позволява на атакуващите да използват инструменти, за да намерят парола и да преминат в сигурна връзка. Защитата от такива случаи ще позволи пълното деактивиране на паролата за вход в конфигурационния файл на SSH. Това ще изисква:
sudo gedit /etc/ssh/sshd_config
. sudo systemctl restart ssh
server sudo systemctl restart ssh
. Удостоверяването с парола ще бъде забранено и ще можете да влезете в сървъра само с помощта на специално създадени за това ключове с RSA алгоритъм.
В Ubuntu защитната стена по подразбиране е Uncomplicated Firewall (UFW). Тя ви позволява да разрешите връзки за избрани услуги. Всяко приложение създава свой собствен профил в този инструмент и UFW ги управлява, като позволява или отказва връзки. Конфигурирането на SSH профил чрез добавянето му към списъка е както следва:
sudo ufw app list
на sudo ufw app list
. sudo ufw allow OpenSSH
. sudo ufw enable
. sudo ufw status
, след което ще видите състоянието на мрежата. Това допълва нашите инструкции за конфигуриране на SSH за Ubuntu. По-нататъшно конфигуриране на конфигурационния файл и други параметри се извършва лично от всеки потребител по неговите заявки. Можете да се запознаете с работата на всички компоненти на SSH в официалната документация на протокола.