Uvod
Ovaj vodič objašnjava kako stvoriti SSH ključeve, dodati javni ključ na vaš CentOS 8 poslužitelj i konfigurirati sshdprijavu bez lozinke.
Korak 1 - Kreiranje para ključeva SSH
Prvo morate stvoriti par SSH ključeva na računalu, ako ih već nemate.
U svom terminalu na lokalnom računalu pokrenite:
ssh-keygen
Nakon što pokrenete ovu naredbu, trebali biste vidjeti sljedeći upit:
Output
Generating public/private rsa key pair.
Enter file in which to save the key (/your_home/.ssh/id_rsa):
Pritisnite ENTERza spremanje ovog para SSH ključeva u ./sshpoddirektorij u vašem početnom imeniku ili navedite alternativni put ako želite.
Nakon ovoga trebali biste vidjeti sljedeći izlaz:
Output
Your identification has been saved in /your_home/.ssh/id_rsa.
Your public key has been saved in /your_home/.ssh/id_rsa.pub.
The key fingerprint is:
your_fingerprint_key username@remote_host
The key's randomart image is:
+--[ RSA 2048]----+
| ..o |
| E o= . |
| o. o |
| .. |
| ..S |
| o o. |
| =o.+. |
|. =++.. |
|o=++. |
+-----------------+
U gornjem primjeru your_homeje kućni imenik vašeg računala
Stvorili ste par javnih i privatnih ključeva. Javni ključ ćemo kopirati na poslužitelj. Da biste vidjeli svoj javni ključ:
cat ~/.ssh/id_rsa.pub
Vidjet ćete vrlo dugačak niz koji počinje sa ssh-rsa .
Korak 2: Dodavanje SSH ključa na CentOS poslužitelj
SSH na vaš poslužitelj i kreirajte .sshdirektorij, ako već ne postoji:
mkdir -p ~/.ssh
Dodajte javni ključ iz 1. koraka u ~/.ssh/authorized_keys. Zamijenite public_key_stringsadržajem id_rsa.pubiz 1. koraka:
echo public_key_string >> ~/.ssh/authorized_keys
Odjavite se s poslužitelja, a zatim se ponovno prijavite:
ssh root@your_server_ip
Ako se prvi put povezujete na ovaj način sa svojim poslužiteljem, vidjet ćete sljedeću poruku:
Output
The authenticity of host 'your_server_ip' can't be established.
ECDSA key fingerprint is your_finderprint_id.
Are you sure you want to continue connecting (yes/no)?
Ako vidite ovu poruku, odgovorite yesi pritisnite Od ENTER
vas će se također tražiti da unesete root lozinku za vaš poslužitelj. Pojasnit ćemo kako to onemogućiti u sljedećem koraku.
Korak 3: Onemogućavanje provjere autentičnosti lozinkom
Vaša autentifikacija temeljena na SSH ključu je konfigurirana, ali je provjera autentičnosti lozinkom još uvijek aktivna. Da biste to promijenili, morate napraviti neke promjene u datoteci sshd_configkoja se nalazi u /etc/sshdirektoriju. Tu datoteku možete otvoriti ovom naredbom:
sudo vi /etc/ssh/sshd_config
U datoteci morate pronaći i promijeniti nekoliko redaka na koje treba postaviti Permit Root Login yes
...
PermitRootLogin yes
...
Provjera autentičnosti lozinke treba biti postavljena na no
...
PasswordAuthentication no
...
Provjera autentičnosti odgovora na izazov treba biti postavljena na no
...
ChallengeResponseAuthentication no
...
Korištenje metode provjere autentičnosti lozinke (PAM) treba postaviti na yes
...
UsePAM yes
...
Nakon što završite s promjenama, pritisnite ESCi zatim :WQ. Da bi ova promjena stupila na snagu, ponovno pokrenite sshduslugu:
sudo systemctl restart sshd.service
Prije zatvaranja terminala na kojem ste spojeni na poslužitelj, otvorite novi prozor terminala i pokrenite ovu naredbu
ssh root@your_server_ip
Sada biste trebali biti spojeni na svoj poslužitelj bez lozinke i samo sa svojim SSH ključem. To znači da je vaša provjera autentičnosti temeljena na SSH-u uspješno konfigurirana i da je provjera autentičnosti lozinkom onemogućena.