Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
Namen tega navodila je, da vam pokaže, kako se samodejno in varno povežete z vašega Raspberry Pi na oddaljeni strežnik v oblaku (in obratno), da izvedete varnostne kopije in posodobitve itd. Če želite to narediti, uporabite pare ključev SSH, ki odpraviti potrebo po zapomnitvi gesel in zagotoviti varnejšo povezavo.
(CAVEAT - Ne poskušajte tega, če niste usposobljeni za konfiguriranje dovoljenj za Linux, sicer boste svoje sisteme naredili bolj ranljive za napade hekerjev.)
Zahteve
1. Raspberry Pi z vmesnikom ukazne vrstice (CLI), kot ga vidite na Puttyju.
2. Dostop do oddaljenega strežnika v oblaku, ki ga gosti recimo OVH ali DigitalOcean, z CLI.
3. Prenosni računalnik ali računalnik z operacijskim sistemom Windows z nameščenimi Putty in PuttyGen.
Predpostavke
1. Imate nekaj znanja o ukazih v sistemu Linux
2. Do oddaljenega strežnika lahko dostopate z običajnimi ročnimi postopki, npr. FTP.
3. V računalniku z operacijskim sistemom Windows boste imeli vnaprej nameščen program PuttyGen
Koraki
Če povzamemo - glejte sliko 1
a) V računalniku z operacijskim sistemom Windows ustvarite zasebno datoteko PPK s pomočjo programa PuttyGen
b) V računalniku z operacijskim sistemom Windows ustvarite javno datoteko PPK s pomočjo PuttyGen (to naredite samodejno v koraku a)
b) V računalniku z operacijskim sistemom Windows kopirajte javni ključ iz računalnika z operacijskim sistemom Windows na oddaljeni strežnik v oblaku
d) V računalniku z operacijskim sistemom Windows pretvorite zasebno datoteko PPK v ključ OpenSSH s pomočjo PuttyGen
e) Kopirajte ključ OpenSSH iz računalnika z operacijskim sistemom Windows v Raspberry Pi
f) Preizkusite dostop in prenos datotek z Raspberry Pi na vaš oddaljeni strežnik
1. korak: A) Ustvarite zasebno datoteko PPK, B) Ustvarite javni ključ in C) Kopirajte jo na oddaljeni strežnik
Če želite ustvariti zasebno datoteko PPK, odprite PuttyGen v računalniku z operacijskim sistemom Windows. Do programa PuttyGen lahko dostopate tako, da z desno tipko miške kliknete ikono kita v opravilni vrstici sistema Windows. V meniju PuttyGen izberite ključ, nato ustvarite par ključev, izberite možnost SSH2 -RSA ključ. Ko ustvarite zasebni ključ, boste pozvani, da nastavite geslo, če pa geslo nastavite, ga boste med prihodnjimi operacijami zahtevali. Shranite zasebni ključ nekje na svojem računalniku z operacijskim sistemom Windows. Nato boste v podoknu videli javni ključ, kot je prikazano na sliki 2.
Nato prenesite javni ključ na oddaljeni strežnik v oblaku. Odprite sejo Putty na oddaljenem strežniku v oblaku z uporabo Putty. Recimo, da ste se prijavili kot remoteuser1, nato pa naredite naslednje na oddaljenem strežniku CLI v oblaku
cd /home /remoteuser1 (če še ni) mkdir.ssh
nano.ssh/authorized_keys (Videli boste prazen zaslon - prilepite javni ključ, prikazan na sliki 2, nato shranite in zaprite to datoteko)
chmod 0700.ssh
chmod 0600 /home/remoteuser1/.ssh/authorized_keys
Korak: D) Pretvorite zasebno datoteko PPK v ključ OpenSSH in E) Kopirajte jo v Raspberry Pi
Če želite zasebni ključ pretvoriti v OpenSSH, odprite PuttyGen in nato odprite zasebni ključ, ki ste ga ustvarili prej - v meniju pojdite na možnost Pretvorbe, nato izberite Izvozi ključ OpenSSH - preverite, ali ima datoteka, ki jo ustvarite, datotečni tip.key. Varno ga shranite in nato odprite sejo kita, da se prijavite v svoj Raspberry Pi. Kopirajte datoteko ključev v domači imenik na Raspberry Pi uporabniškega računa, s katerim ste se prijavili na Raspberry Pi. Recimo, da se ključ imenuje pitobot.key, nato sledite tem korakom:
cd /home /pi
sudo mv pitobot.key/home/pi/
sudo chmod 600 pitobot.key
Zdaj ste pripravljeni preizkusiti, ali je vaša namestitev uspešna - to spet počne Pi. Ne pozabite, da je remoteuser1 račun na oddaljenem strežniku v oblaku, v domačem imeniku katerega ste shranili javni ključ, ipaddress pa je naslov ipad oddaljenega strežnika v oblaku.
Najprej iz Raspberry Pi se prijavimo na oddaljeni strežnik v oblaku s pomočjo Puttyja. V vmesnik Raspberry PI CLI vnesite naslednje ukaze. (Če ste pri ustvarjanju zasebnega ključa nastavili geslo, ga boste zdaj zahtevali.)
sudo ssh -i /home/pi/pitobot.key remoteuser1@ipaddress
To vas bo prijavilo v CLI oddaljenega strežnika v oblaku v domačem imeniku remoteuser1. Z vnosom 'exit; vrnili se boste v CLI vašega Raspberry Pi.
Nato poskusite prenesti datoteke z oddaljenega strežnika v oblaku na Raspberry Pi. Uporabite naslednje ukaze: (Če ste pri ustvarjanju zasebnega ključa nastavili geslo, ga boste zdaj zahtevali.)
sudo scp -i /home/pi/pitobot.key remoteuser1@ipaddress: //var/www/html/*.*/home/pi/
S tem boste vse datoteke iz mape/var/www/html/na oddaljenem strežniku prenesli v mapo/home/pi/na vašem Raspberry Pi. (Dvopičje je zelo pomembno) Seveda lahko spremenite vrstni red ukazov in prenesete datoteke iz Pi na oddaljeni strežnik.
3. korak: Varnostni vidiki
Čeprav pristop para ključev SSH izboljšuje varnost, upoštevajte naslednje:
1. Če so omogočeni pari ključev SSH, razmislite o odstranitvi možnosti, da se uporabniki prijavijo neposredno na oddaljeni strežnik (do strežnikov lahko dostopate tudi z uporabo parov ključev Putty v sistemu Windows z istim parom ključev, lahko pa tudi onemogočite se prijavite tudi v svoj Pi). Bodite previdni, če se odločite za to, in se ne lotite velikega poka. Če želite to narediti, morate onemogočiti nekaj konfiguracij v konfiguracijski datoteki ssh. Pri tem bodite zelo previdni. Ukazi so
nano/etc/ssh/sshd_config
V datoteki naredite naslednje spremembe
GesloAvtentifikacija št
Uporabite PAM št
Shranite, zapustite in nato znova zaženite SSH z systemctl restart ssh (To je za Debian. Lahko je drugače v različnih distribucijah Linuxa)
2) Zaščitite vse svoje ključe, sicer tvegate kršitev podatkov ali pa nimate dostopa do strežnikov. Priporočam, da jih hranite v varnem trezorju, kot je bitwarden.com, in omejite dostop do njega s svojo politiko nadzora dostopa.
3) Uporaba gesla izboljša varnost, lahko pa oteži avtomatizacijo opravil cron itd. Odločitev o uporabi te in drugih funkcij bi morala biti določena z oceno tveganja, na primer, če obdelujete osebne podatke, potrebujete večji / sorazmeren nadzor.