Основният начин за свързване към Linux сървър е чрез SSH протокол . Този тип връзка е сигурна, защото всички данни, прехвърляни през нея, са криптирани. За да установите SSH връзка, трябва да я конфигурирате на отдалечения сървър, към който искате да се свържете, и на клиента от страна на потребителя. Има много софтуер за SSH връзка. Що се отнася до Linux, OpenSSH пакетът е най-популярен, а за Windows хората използват предимно PuTTY.
Нека разгледаме по-отблизо конфигурацията на сървъра, използвайки Ubuntu Server 18.04 като пример, и след това опитайте да се свържете със сървъра от Linux и Windows.
Всичко, което правим, ще бъде от обикновен потребителски акаунт. В този случай създадохме потребител „ mihail “, а акаунтът „ root “ е деактивиран по подразбиране.
Настройка от страна на сървъра
Настройте пакета, изпълняващ тази команда:
sudo apt install openssh-server
След като инсталацията приключи, уверете се, че услугата работи. Използвайте тази команда:
systemctl status sshd
Статус „ Активен (работи) “ означава, че услугата е активирана и работи нормално.
За да избегнете блокирането на входящите връзки от защитната стена, уверете се, че сте я деактивирали, тъй като в тази статия няма да конфигурираме защитната стена на мрежата.
Използвайте тази команда:
sudo ufw disable
На този етап вече можете да се свържете със сървъра. С настройките по подразбиране сървърът позволява връзка към стандартния порт 22 с удостоверяване на базата на парола.
SSH връзка от Linux
По правило клиентът OpenSSH е инсталиран на Linux по подразбиране и не изисква допълнителна ръчна конфигурация. Връзката може да се установи от терминала с помощта на командата ssh. Параметрите в този случай ще бъдат потребителско име и IP адрес на отдалечения сървър. На нашия тестов сървър, който използваме като пример, има само един акаунт „mihail“, така че ще използваме това.
ssh [email protected]
При първото свързване ще трябва да потвърдите добавянето на публичния ключ на сървъра към базата данни, така че отговорете с „ да “. След това можете да въведете паролата. Ако връзката е осъществена успешно, ще видите приветствен текст от командния ред на сървъра. Сега всички команди ще се изпълняват директно на отдалечения сървър.
SSH от Windows
Отворете Putty и задайте параметрите за връзка. Уверете се, че превключвателят „ Тип връзка “ е в положение SSH . Въведете IP адреса в полето „ Име на хост “, стойността по подразбиране 22 в „ Порт “ и щракнете върху „ Отвори “.
При първото свързване Putty ще ви помоли да потвърдите, че се доверявате на този сървър, така че щракнете върху „ Да “.
След като въведете данните за вход и паролата, ще видите командния ред на отдалечения сървър.
Удостоверяване чрез ключ. Повишаване на нивото на сигурност
Когато клиент се опитва да установи защитена връзка със сървъра чрез SSH, преди да разреши връзката, сървърът изисква да удостовери (провери) клиента. Както бе споменато по-горе, удостоверяването, базирано на парола, обикновено се използва по подразбиране. Той не осигурява стабилна защита, защото винаги има начин да го брутираме. Освен това удостоверяването с парола не е приложимо за SSH връзки с използване на скриптове.
За този тип задачи има специален метод за удостоверяване по ключ. Въпросът е, че клиентът генерира частни и публични ключове и след това публичният ключ се изпраща на сървъра. След това нямате нужда от парола, за да се свържете със сървъра, тъй като удостоверяването се извършва на базата на публични и частни клиентски ключове. За да се осигури добро ниво на сигурност, достъпът до частния ключ трябва да бъде ограничен. Поради факта, че личният ключ се съхранява от страна на клиента и не се прехвърля през мрежата, този метод се смята за по-сигурен.
Удостоверяване чрез ключ на Linux
Нека генерираме публични и частни ключове на клиента с помощта на помощния софтуер ssh-keygen. Инструментът ще предложи промяна на пътя до личния ключ и ще въведете парола за допълнителна сигурност. Оставете всички параметри по подразбиране, като натиснете Enter при всички заявки.
В резултат на това, в началната директория в папката .ssh ще намерите генерирани два файла: id_rsa и id_rsa.pub , които съдържат съответно частни и публични ключове.
След това ще трябва да изпратите публичния ключ на сървъра. За да направите това, копирайте съдържанието на файла „ id_rsa.pub “ във файла „ ~/.ssh/authorized_keys “ на сървъра. Нека да използваме най-лесния начин с помощта на инструмента „ ssh-copy-id “. Въведете потребителското име и IP адреса на сървъра, както при обикновена връзка. След като въведете паролата, публичният ключ на клиента ще бъде автоматично копиран на сървъра. Изпълнете тази команда:
ssh-copy-id [email protected]
След като направите всичко това, сървърът вече няма да изисква въвеждане на парола.
Удостоверяване чрез ключ на Windows
Отворете PUTTYGEN и кликнете върху „ Генериране “. За да генерирате ключовете, просто трябва да преместите мишката върху екрана и инструментът ще генерира ключовете на случаен принцип.
След като ключовете са генерирани, щракнете върху „ Запазване на публичния ключ “ и го запазете във файла с личния ключ на вашия диск. Можете да зададете какъвто път желаете, но малко по-късно ще трябва да го посочите в Putty. След това копирайте публичния ключ от горната част на прозореца.
Нека изпратим публичния ключ, като просто го копираме в терминала. Отворете Putty и се свържете със сървъра както обикновено. Сега нека създадем „ .ssh/authorized_keys “ и да ограничим достъпа до файла на другите потребители, така че той да е достъпен само за създателя му.
mkdir .ssh
touch .ssh/authorized_keys
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
След като създадете файла, поставете публичния ключ на клиента в него. На предишния етап копирахме публичния ключ в клипборда. За да запишете какво има в клипборда във файла, използвайте команда cat и пренасочване на изхода.
cat > .ssh/authorized_keys
След като въведете командата, щракнете с десния бутон на мишката в прозореца на терминала и поставете съдържанието на клипборда. За да потвърдите въведеното, натиснете клавишната комбинация „ Ctrl+D “ и прекъснете връзката със сървъра.
Сега нека посочим пътя до личния ключ в Putty и да се свържем отново със сървъра.
От сега нататък, за да се свържете със сървъра, ще трябва само да въведете потребителско име. Ако се опитвате да се свържете със сървъра от друго устройство, което няма правилния частен ключ, сървърът ще поиска парола. След като бъде настроено удостоверяване на базата на ключ, можете да забраните достъпа чрез парола.