AXV

SSH kalitlari

Kalit juftligi, ssh-keygen, ssh-copy-id, authorized_keys, sshd_config, ssh-agent, ~/.ssh/config, diagnostika

11-sinfProfessional IT development6-hafta · 17-dars

Bugun nimalarni o'rganamiz?

Kalit juftligi

Private va public

Serverga joylash

authorized_keys

Server qattiqlashtirish

sshd_config

Takrorlash

~/.ssh katalogi uchun to'g'ri ruxsat?

Faqat egasi kira oladi: 700.
01

Kalit juftligi

Private va public

Kalit mantig'i

Mijozdakalit jufti Public kalitserverga Servertekshiradi Parolsizkirish Private kalit hech qachon ketmaydi

Kalit yaratish


ssh-keygen -t ed25519 -C "ali@maktab"
ls ~/.ssh
# id_ed25519      shaxsiy (sir)
# id_ed25519.pub  ommaviy
cat ~/.ssh/id_ed25519.pub
  
Shaxsiy kalit (id_ed25519) ni hech kimga bermang va GitHub ga qo'ymang. Faqat .pub faylni ulashing.

Mini-test

Serverga qaysi kalit joylanadi?

Shaxsiy kalit mijozda qoladi.
02

Serverga joylash

authorized_keys

Kalitni joylash

ssh-copy-id authorized_keys chmod700 / 600 sshuser@server Ruxsat noto'g'ri bo'lsa, kalit ishlamaydi

Ulanish


ssh-copy-id [email protected]
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
ssh [email protected]
  
203.0.113.10 — hujjatlarda ishlatiladigan namunaviy IP. Server kaliti o'zgarganida ogohlantirishni «o'chirib tashlash»ga shoshilmang: avval sababni tekshiring.

Mini-test

authorized_keys ruxsati qanday bo'lishi kerak?

Faqat egasi o'qiydi va yozadi.
03

Server qattiqlashtirish

sshd_config

Xavfsiz tartib

Kalit ishlaydi Boshqaterminalda sinash PasswordAuthenticationno restart sshd Avval sinang, keyin parolni o'chiring

Sozlama va config


# /etc/ssh/sshd_config
PubkeyAuthentication yes
PasswordAuthentication no
PermitRootLogin no

# ~/.ssh/config
Host prod
  HostName 203.0.113.10
  User deploy
  IdentityFile ~/.ssh/id_ed25519
  
Sozlamadan keyin ssh prod bilan ulaning. Ulana olmasangiz: ssh -vvv prod va serverdagi log, odatda sabab ruxsat yoki authorized_keys formatida.

Mini-test

PasswordAuthentication no dan oldin nima qilinadi?

Aks holda o'zingizni tashqarida qoldirasiz.

Parol va kalit

Parol

Tez, lekin brute-force va tinglashga zaif
VS

Kalit

Parol yuborilmaydi, avtomatlashtirish oson

Server uchun kalitga asoslangan kirish tavsiya etiladi.

Atamalar. Bosing

Private key

bosing

Shaxsiy kalit, faqat sizda

Public key

bosing

Serverga qo'yiladigan kalit

authorized_keys

bosing

Serverda ruxsat berilgan kalitlar fayli

known_hosts

bosing

Tanilgan serverlar ro'yxati

SSH ni sozlash

1. Kalit yarating

ssh-keygen -t ed25519.

2. Serverga qo'ying

ssh-copy-id.

3. Qattiqlashtiring

Parolni o'chiring.

SSH sozlamalari

SozlamaQiymatNima uchun
PubkeyAuthenticationyeskalit bilan kirish
PasswordAuthenticationnobrute-force oldi
PermitRootLoginnoroot orqali kirishni taqiqlash
~/.ssh700faqat egasi
authorized_keys600faqat egasi o'qiydi

Pastga bosing: sozlamalar

Birinchi kalitli ulanish

  1. ssh-keygen -t ed25519 -C "ismingiz@loyiha" ni bajaring.
  2. ssh-copy-id user@server bilan kalitni joylang.
  3. ssh user@server bilan parolsiz kiring.

Ruxsat xatosi


chmod 777 ~/.ssh
  

Ruxsat xatosi


chmod 700 ~/.ssh
  

SSH raqamlarda

0
ta kalit: shaxsiy va ommaviy
0
— ~/.ssh ruxsati
0
— authorized_keys ruxsati

Kalit juftligi — parolga kuchli alternativa.

Amaliy topshiriq 20 daqiqa

OsonKalit yarating: ed25519 kalit juftini ali@maktab izohi bilan yarating.
OsonQaysi kalit?: Serverga qaysi faylni joylaymiz va qaysini yashiramiz?
O'rtaRuxsatlar: SSH kalitlari ishlashi uchun ruxsatlarni to'g'rilang.
O'rtaConfig yozing: prod nomi bilan serverga deploy foydalanuvchisi bilan ulanishni yozing.
QiyinQattiqlashtirish: sshd_config da parol va root kirishni o'chiring, xavfsiz tartibni yozing.
BonusDiagnostika: Permission denied (publickey) chiqdi. 4 ta tekshiruv yozing.

Dars xulosasi

Kalit juftligi

ssh-keygen -t ed25519; private sirda.

Serverga

ssh-copy-id, authorized_keys, 700/600.

Xavfsizlik

PasswordAuthentication no, ssh -vvv.

Uyga vazifa: SSH kalit va config.

Keyingi dars: Nginx reverse-proxy

Ilova oldidagi eshik

6-hafta · 18-dars