Конфигурирайте SSH в Ubuntu

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

Конфигурирайте SSH в Ubuntu

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

Още подробности: Инсталиране на SSH-сървър в Ubuntu

Създаване на двойка ключове на RSA

Новоинсталираният SSH няма посочените ключове за свързване от сървъра към клиента и обратно. Всички тези параметри трябва да бъдат зададени ръчно веднага след добавяне на всички компоненти на протокола. Ключовата двойка работи с алгоритъма RSA (съкратено от имената на разработчиците на Rivest, Shamir и Adleman). Благодарение на тази криптосистема специалните клавиши се криптират с помощта на специални алгоритми. За да създадете чифт публични ключове, трябва само да въведете подходящите команди в конзолата и да следвате инструкциите, които се появяват.

  1. Преминете към работа с Терминал, използвайки всеки удобен метод, например, като го отворите през менюто или клавишната комбинация Ctrl + Alt + T.
  2. Стартирайте терминал в Ubuntu за допълнително конфигуриране на SSH

  3. Въведете ssh-keygen и след това натиснете клавиша Enter .
  4. Създайте SSH ключ през конзолата в операционната система Ubuntu

  5. Ще бъдете подканени да създадете файл, в който ключовете ще бъдат запазени. Ако искате да ги оставите в местоположението по подразбиране, просто натиснете Enter .
  6. Изберете файл, за да запишете SSH протоколните ключове в Ubuntu

  7. Публичният ключ може да бъде защитен с кодова фраза. Ако искате да използвате тази опция, в появилия се ред напишете паролата. Въведените символи няма да се показват. Новият ред ще трябва да го повтори.
  8. Въвеждане на ключова фраза при създаване на SSH ключ в Ubuntu

  9. По-нататък ще видите известие, че ключът е запазен и вие също ще можете да се запознаете със случаен графичен образ.
  10. Успешно създаване на ключове за SSH в операционната система Ubuntu

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

Копиране на публичния ключ към сървъра

Има три метода за копиране на ключове. Всеки един от тях ще бъде оптимален в различни ситуации, където например един от методите не работи или не е подходящ за конкретен потребител. Ние предлагаме да се разгледат всички три варианта, като се започне с най-прости и ефективни.

Опция 1: ssh-copy-id команда

Командата ssh-copy-id е вградена в операционната система, така че не трябва да се инсталират допълнителни компоненти, за да се стартира. Следвайте простия синтаксис, за да копирате ключа. В "Терминал" трябва да въведете ssh-copy-id username@remote_host , където потребителско име @ remote_host е името на отдалечения компютър.

Копирайте SSH ключа чрез специална програма в Ubuntu

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

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" .

Прехвърлете копирания ключ през специална програма на Ubuntu

Когато се появи съобщение

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 .

Вижте ключова информация чрез командата cat в Ubuntu

На екрана ще се появи следният ред: ssh-rsa + ключ в виде набора символов== demo@test . След това отидете на работа на отдалеченото устройство, където създавате нова директория чрез mkdir -p ~/.ssh . Освен това той създава authorized_keys файл. След това поставете ключа, който сте научили по-рано чрез echo + строка публичного ключа >> ~/.ssh/authorized_keys . След това можете да опитате да удостоверите автентичността си със сървъра, без да използвате пароли.

Удостоверяване на сървъра чрез генерирания ключ

В предишния раздел научихте за трите метода за копиране на ключ на отдалечен компютър към сървър. Такива действия ще ви позволят да се свържете без да използвате парола. Тази процедура се изпълнява чрез командния ред чрез въвеждане на shh ssh username@remote_host , където потребителско име @ remote_host е потребителското име и хоста на желания компютър. Когато се свържете за първи път, ще бъдете уведомени за непозната връзка и можете да продължите, като изберете опцията yes .

Свържете се с отдалечен компютър чрез SSH в Ubuntu

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

Деактивиране на удостоверяването с парола

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

  1. В Терминала отворете конфигурационния файл чрез редактора с командата sudo gedit /etc/ssh/sshd_config .
  2. Стартирайте SSH конфигурационния файл чрез редактора в Ubuntu

  3. Намерете реда „PasswordAuthentication“ и премахнете знака # в началото, за да разкоментирате параметъра.
  4. Разкоментирайте низ с удостоверяване с парола в Ubuntu

  5. Променете стойността на no и запазете текущата конфигурация.
  6. Деактивирайте удостоверяването на SSH парола чрез Ubuntu

  7. Затворете редактора и рестартирайте sudo systemctl restart ssh server sudo systemctl restart ssh .
  8. Рестартирайте SSH сървъра в OS Ubuntu

Удостоверяването с парола ще бъде забранено и ще можете да влезете в сървъра само с помощта на специално създадени за това ключове с RSA алгоритъм.

Създаване на стандартна защитна стена

В Ubuntu защитната стена по подразбиране е Uncomplicated Firewall (UFW). Тя ви позволява да разрешите връзки за избрани услуги. Всяко приложение създава свой собствен профил в този инструмент и UFW ги управлява, като позволява или отказва връзки. Конфигурирането на SSH профил чрез добавянето му към списъка е както следва:

  1. Отворете списъка с профили на защитната стена, като използвате sudo ufw app list на sudo ufw app list .
  2. Вижте списък със стандартни профили на защитната стена в Ubuntu

  3. Въведете паролата за профила си, за да се показва информация.
  4. Въвеждане на парола, за да видите списък на стандартните профили на защитната стена на Ubuntu

  5. Ще видите списък на наличните приложения, OpenSSH трябва да е сред тях.
  6. Списък на стандартните профили на защитната стена в Ubuntu

  7. Сега трябва да разрешите връзки през SSH. За да направите това, добавете го в списъка на разрешените профили, използвайки sudo ufw allow OpenSSH .
  8. Добавете SSH сървър, за да разрешите връзки към защитната стена на Ubuntu

  9. Активирайте защитната стена, като актуализирате правилата, sudo ufw enable .
  10. Рестартирайте правилата за обновяване на защитната стена в Ubuntu

  11. За да сте сигурни, че връзките са позволени, трябва да настроите sudo ufw status , след което ще видите състоянието на мрежата.
  12. Преглед на списъка с разрешени защитни стени в Ubuntu

Това допълва нашите инструкции за конфигуриране на SSH за Ubuntu. По-нататъшно конфигуриране на конфигурационния файл и други параметри се извършва лично от всеки потребител по неговите заявки. Можете да се запознаете с работата на всички компоненти на SSH в официалната документация на протокола.