Како да поставите SSH клучеви на Ubuntu 12.04
Вовед
Secure Shell Protocol (или SSH) е криптографски мрежен протокол кој им овозможува на корисниците безбедно пристап до оддалечен компјутер преку необезбедена мрежа.
Иако SSH поддржува автентикација базирана на лозинка, генерално се препорачува наместо тоа да користите SSH клучеви. SSH клучевите се посигурен метод за најавување на SSH сервер, бидејќи тие не се ранливи на вообичаени напади за хакирање на лозинка со брутална сила.
Со генерирање на пар клучеви SSH се создаваат две долги низи на знаци: јавен и приватен клуч. Можете да го поставите јавниот клуч на кој било сервер, а потоа да се поврзете на серверот користејќи SSH клиент кој има пристап до приватниот клуч.
Кога јавниот и приватниот клуч се совпаѓаат, серверот SSH дава пристап без потреба од лозинка. Можете да ја зголемите безбедноста на вашиот пар клучеви уште повеќе со заштита на приватниот клуч со изборна (но многу охрабрена) лозинка.
Забелешка: ако барате информации за поставување SSH клучеви во вашата сметка на DigitalOcean, погледнете ја нашата документација за производи на DigitalOcean за SSH Keys
Чекор 1 - Креирање на пар клучеви
Првиот чекор е да се создаде пар клучеви на клиентската машина. Ова најверојатно ќе биде вашиот локален компјутер. Внесете ја следнава команда во вашата локална командна линија:
- ssh-keygen -t ed25519
OutputGenerating public/private ed25519 key pair.
Ќе видите потврда дека процесот на генерирање клучеви е започнат и ќе ви биде побарано некои информации, за кои ќе разговараме во следниот чекор.
Забелешка: ако сте на постар систем кој не поддржува создавање парови клучеви ed25519
или серверот на кој се поврзувате не ги поддржува, треба да создадете силна Наместо тоа, пар клучеви rsa
:
- ssh-keygen -t rsa -b 4096
Ова го менува знамето -t
\type во rsa
и го додава знамето -b 4096
\bits за да создаде 4096 бит клуч.
Чекор 2 - Одредување каде да се зачуваат копчињата
Првиот потсетник од командата ssh-keygen
ќе ве праша каде да ги зачувате копчињата:
OutputEnter file in which to save the key (/home/sammy/.ssh/id_ed25519):
Можете да притиснете ENTER
овде за да ги зачувате датотеките на стандардната локација во директориумот .ssh
на вашиот домашен директориум.
Алтернативно, можете да изберете друго име или локација на датотеката со тоа што ќе го напишете по известувањето и ќе притиснете ENTER
.
Чекор 3 - Создавање лозинка
Второто и последното известување од ssh-keygen
ќе ве замоли да внесете лозинка:
OutputEnter passphrase (empty for no passphrase):
Од вас зависи дали сакате да користите лозинка, но тоа е силно охрабрено: безбедноста на пар клучеви, без разлика на шемата за шифрирање, сепак зависи од фактот дека не е достапна за никој друг.
Доколку приватен клуч без лозинка падне во сопственост на неовластен корисник, тој ќе може да се најави на кој било сервер што сте го конфигурирале со поврзаниот јавен клуч.
Главната негативна страна на поседувањето лозинка - внесување на истата - може да се ублажи со користење на услугата ssh-agent
, која привремено ќе го складира вашиот отклучен клуч и ќе го направи достапен за клиентот SSH. Многу од овие агенти се интегрирани со природната синџир на клучеви на вашиот оперативен систем, што го прави процесот на отклучување уште полесна.
Да резимираме, целиот процес на генерирање на клучеви изгледа вака:
- ssh-keygen -t ed25519
OutputGenerating public/private ed25519 key pair.
Enter file in which to save the key (/home/sammy/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/sammy/.ssh/id_ed25519
Your public key has been saved in /home/sammy/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:EGx5HEXz7EqKigIxHHWKpCZItSj1Dy9Dqc5cYae+1zc sammy@hostname
The key's randomart image is:
+--[ED25519 256]--+
| o+o o.o.++ |
|=oo.+.+.o + |
|*+.oB.o. o |
|*. + B . . |
| o. = o S . . |
|.+ o o . o . |
|. + . ... . |
|. . o. . E |
| .. o. . . |
+----[SHA256]-----+
Јавниот клуч сега се наоѓа во /home/sammy/.ssh/id_ed25519.pub
. Приватниот клуч сега се наоѓа во /home/sammy/.ssh/id_ed25519
.
Чекор 4 - Копирање на јавниот клуч на вашиот сервер
Откако ќе се генерира парот на клучеви, време е да го поставите јавниот клуч на серверот на кој сакате да се поврзете.
Можете да го копирате јавниот клуч во датотеката authorized_keys
на серверот со командата ssh-copy-id
. Погрижете се да го замените примерот на корисничко име и адреса:
- ssh-copy-id sammy@your_server_address
Откако командата ќе заврши, ќе можете да се најавите на серверот преку SSH без да ви биде побарано лозинка. Меѓутоа, ако поставите лозинка при креирањето на вашиот SSH клуч, ќе биде побарано да ја внесете лозинката во тој момент. Ова е вашиот локален ssh
клиент кој бара од вас да го дешифрирате приватниот клуч, тој не е оддалечениот сервер кој бара лозинка.
Чекор 5 - Оневозможување на SSH автентикација базирана на лозинка (опционално)
Откако ќе ги копирате вашите SSH клучеви на серверот, можеби ќе сакате целосно да забраните најавување со лозинка со конфигурирање на SSH серверот да ја оневозможи автентикацијата базирана на лозинка.
Предупредување: пред да ја оневозможите автентикацијата заснована на лозинка, бидете сигурни дека можете успешно да се најавите на серверот со вашиот SSH клуч и дека нема други корисници на серверот кои користат лозинки да се најавите.
За да ја оневозможите SSH автентикацијата базирана на лозинка, отворете ја конфигурациската датотека SSH. Обично се наоѓа на следната локација:
- sudo nano /etc/ssh/sshd_config
Оваа команда ќе ја отвори датотеката во текстуалниот уредувач nano
. Најдете ја линијата во датотеката што вклучува PasswordAuthentication
(или креирајте ја линијата ако не постои), проверете дали е коментирана со #
на почетокот на линијата и сменете ја во не
:
PasswordAuthentication no
Зачувајте ја и затворете ја датотеката кога ќе завршите. Во nano
, користете CTRL+O
за зачувување, притиснете ENTER
за да го потврдите името на датотеката, потоа CTRL+X
за да излез.
Повторно вчитајте ја услугата sshd
за да ги ставите на сила овие промени:
- sudo systemctl reload sshd
Пред да излезете од вашата тековна SSH сесија, направете тест-врска во друг терминал за да потврдите дека сè уште можете да се поврзете.
Заклучок
Во ова упатство создадовме пар клучеви SSH, го копиравме нашиот јавен клуч на сервер и (опционално) целосно ја оневозможивме автентикацијата базирана на лозинка.
За повеќе информации за SSH и услугата SSH, вклучително и како да поставите мултифакторска автентикација, прочитајте ги нашите поврзани упатства:
- Како да користите SSH за да се поврзете со далечински сервер
- Основи на SSH: Работа со SSH сервери, клиенти и клучеви
- Како да поставите мулти-факторска автентикација за SSH на Ubuntu 20.04