Конфигуриране на оторизация на SSH ключове в сървър на Linux
Удостоверяването с SSH ключ е модерен и сигурен начин за свързване към сървър, базиран на Linux. То превъзхожда традиционните пароли по отношение на сигурността и удобството, особено ако редовно работите с отдалечени системи. В това ръководство ще ви преведем стъпка по стъпка през процеса на настройка - от създаването на ключове до повишената сигурност и автоматизацията. Ще научите как да организирате достъпа, да избягвате грешки и да направите работата си със сървъра ефективна и сигурна.Какво представляват SSH ключовете и защо са по-добри от паролите
SSH (Secure Shell) е протокол за защитен отдалечен достъп до сървъри. Обикновено за влизане в системата се използва парола, но тя е уязвима: може да се забрави, да се улови чрез атака с груба сила или да се прихване при слабо криптиране. SSH ключовете решават тези проблеми, като заменят паролата с криптографска двойка: публичен ключ и частен ключ.Публичният ключ се поставя на сървъра, докато частният ключ остава при вас и никога не се предава по мрежата. Когато се свържете, сървърът проверява дали ключовете съвпадат, като използва математически алгоритми. Този метод елиминира риска от изтичане на парола и ви позволява да автоматизирате влизането в системата, което е особено ценно за системните администратори, разработчиците и специалистите по DevOps.
Предимства на SSH ключовете:
- Висока устойчивост на атаки;
- Удобство при автоматично свързване;
- Гъвкавост при управлението на достъпа за множество потребители или устройства.
Генериране на двойка SSH ключове
Създаване на ключове
Първо, трябва да генерирате ключове на локалното си устройство. Това става с помощта на програмата ssh-keygen, налична за Linux, macOS и Windows (с Git Bash или WSL).Отворете терминал и изпълнете:
ssh-keygen -t rsa -b 4096
Нека разделим параметрите:
- -t rsa — определя алгоритъма за криптиране. RSA е една от най-разпространените и сигурни опции;
- -b 4096 — определя дължината на ключа в битове. 4096 е съвременният стандарт за висока сигурност.
Системата ще попита за пътя, по който да запише файловете. Пътищата по подразбиране са ~/.ssh/id_rsa (частен ключ) и ~/.ssh/id_rsa.pub (публичен ключ). Ако ключовете вече съществуват, посочете друг път, например:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/my_new_key -C "my_new_key"
Защита на ключа с парола
Ще бъдете помолени да въведете парола за частния ключ. Това не е задължително, но е силно препоръчително: ако някой получи достъп до устройството ви, ключът ще бъде безполезен без паролата. Използвайте сложна парола (над 12 символа, букви, цифри, специални символи). След това ще получите два файла и пръстов отпечатък за удостоверяване.Проверете създадените файлове:
ls -l ~/.ssh
Прехвърляне на публичния ключ към сървъра
Ако разполагате с помощната програма ssh-copy-id, използвайте я:ssh-copy-id -i ~/.ssh/id_rsa.pub потребител@server_address
- -i ~/.ssh/id_rsa.pub — път на публичния ключ;
- потребител@server_address — потребителско име и IP адрес/домейн (например, [email protected]).
Ръчен метод
Ако командата ssh-copy-id липсва, можете да копирате ключа ръчно, като използвате следната команда:cat ~/.ssh/id_rsa.pub | ssh username@server_address "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
Уверете се, че разрешенията за директорията ~/.ssh на сървъра са зададени правилно:
- Папка ~/.ssh: права 700;
- Файл authorized_keys: права 600.
Тестване на връзката
Опитайте се да се свържете:ssh потребител@server_address
Ако не е зададена парола за ключ, влизането в системата е автоматично. В противен случай въведете ключовата парола. Проверете дали всичко работи.Ако нещо се е объркало, използвайте режима за отстраняване на грешки:
ssh -v потребител@server_address
В дневника ще бъде показано къде е грешката (напр. грешни разрешения или липсващ ключ).Подобряване на сигурността на сървъра
Деактивиране на влизането с парола
Отворете /etc/ssh/sshd_config:nano /etc/ssh/sshd_config
Настройте го:
PasswordAuthentication noЗабележка: Първо проверете входния ключ, в противен случай достъпът ще бъде загубен.
Промяна на порта SSH
Променете порта в /etc/ssh/sshd_config (например на 2222):Port 2222
Рестартирайте службата:
systemctl restart sshd
Проверете състоянието:
systemctl status sshd
Типични грешки и тяхното отстраняване
Задаването на SSH ключове понякога може да е трудно. Ето някои често срещани грешки и как да ги отстраните:Грешка: "Permission denied (publickey)"
Това означава, че сървърът не е приел вашия ключ. Проверете това:- Правилно ли е копиран публичният ключ в ~/.ssh/authorized_keys.
- Права на достъп: изпълнете
chmod 700 ~/.ssh ; chmod 600 ~/.ssh/authorized_keys
- Собственик на файла: уверете се, че файловете принадлежат на потребителя
chown потребител:група ~/.ssh -R
Грешка: "Agent admitted failure to sign"
Проблем с агента SSH. Рестартирайте го:eval "$(ssh-agent -s)"
След това добавете ключа:
ssh-add ~/.ssh/id_rsa
Връзката увисва
Може би сървърът изисква ключовата парола, а вие не сте я забелязали. Уверете се, че използвате правилния ключ, или проверете дневника:ssh -v user@server_address
Автоматизация на SSH
Конфигуриране на псевдоними
Създаване на файл ~/.ssh/config:Host dev
HostName dev.example.com
User devuser
Port 2222
IdentityFile ~/.ssh/dev_key
Свържете се:
ssh dev
С помощта на SSH ключовете можете да автоматизирате различни задачи, като например:
- Създаване на резервно копие на данни през SSH с помощта на rsync;
- Автоматично изпълнение на скриптове и команди на отдалечен сървър;
- Управление на конфигурацията и внедряване на приложения с помощта на Ansible или други инструменти за автоматизация.
Полезни съвети
- Съхранявайте частния ключ на криптиран носител;
- Използвайте ssh-add за управление на ключове;
- Опитайте да се свържете с тестовия сървър и споделете опита си в коментарите.
Заключение
Конфигурирането на удостоверяване с SSH ключове значително повишава сигурността и удобството при работа с Linux сървъри. Като следвате тези стъпки и препоръки, ще осигурите надеждна защита на сървърите си и ще опростите процесите на управление.02 Apr 2025, 19:12:49