Selles artiklis on kokku kogutud meie parimad nipid SSH-i tõhusamaks kasutamiseks. Siit saad teada, kuidas:
- Lisada SSH sisselogimisele teine tegur
- Ohutult kasutada agentide edastamist
- Väljuda külmunud SSH seansist
- Hoida pidevalt terminal avatud
- Jagada kaug-terminaliseanssi sõbraga (ilma Zoomita!)
Teise teguri lisamine oma SSH-le
Teise autentimise teguri saab oma SSH-ühendustele lisada viie erineva meetodiga:
- Uuenda oma OpenSSH ja kasuta krüptovõtit. Veebruaris 2020 lisati OpenSSH-sse FIDO U2F (Universaalne Teine Tegur) krüptovõtete tugi. See on suurepärane uus funktsioon, kuid on üks nüanss: ainult need kliendid ja serverid, mis on uuendatud versioonile OpenSSH 8.2 ja üle, saavad kasutada krüptovõtmeid, kuna veebruari uuendus tutvustab uusi võtme tüüpe. Käsk
ssh -Vvõimaldab kontrollida SSH-i kliendiversiooni, serveriversiooni kontrollimist saab teha käsuganc [servername] 22
Februari versioonis lisati kaks uut võtitüüpi — ecdsa-sk ja ed25519-sk (koos vastavate sertifikaatidega). Väheseks jääb, kui sisestada oma krüptovõti ja käivitada käsk:$ ssh-keygen -t ecdsa-sk -f ~/.ssh/id_ecdsa_skSee loob avaliku ja privaatse võtme ning seob need teie U2F seadmega. Privaatse võtme ülesanne U2F seadmes on dekrüpteerida ketas asuv võtme salajane descriptor aktiveeritud krüptovõtmega.
Lisaks saate teise tegurina esitada oma võtmete jaoks koodivihje.
Reidiava võtme (resident) on veel üks OpenSSH poolt toetatud -sk-võtmete genereerimise tüüp. Sellisel lähenemisel hoitakse deskriptorit U2F seadmes, võimaldades teil seda kasutada krüptovõtmega, kui see on vajalik. Reidiava võtme loomine on võimalik käskluse abil:
$ ssh-keygen -t ecdsa-sk -O resident -f ~/.ssh/id_ecdsa_skSeejärel, et tuua deskriptor tagasi mällu uuel seadmel, sisestage krüptovõti ja käivitage käsk:
$ ssh-add -KServeriga ühendamisel peate endiselt aktiveerima krüptovõtme.
- Kasutage PIV+PKCS11 ja Yubikeyd. Varasemate SSHD versioonide seadmete ühendamiseks krüpteerimisse ключi abil on vajalik teine lähenemine. Yubico lehelt leiate juhendi U2F+SSH kasutamiseks PIV/PKCS11 (inglise keeles). See ei ole sama, mis FIDO U2F, ja kuigi meetod toimib, tuleb aru saada, milline maagia selle taga peitub.
- Kasutage kohandatud yubikey-agent ssh-agentit. Filippo Valdone kirjutas SSH-agendi Yubikeyde jaoks. See on täiesti uus ja sisaldab minimaalset funktsionaalsust.
- Kasutage Touch ID-d ja sekey-d. Sekey on avatud allika SSH-agent, mis salvestab saladuslikud võtmed Mac'i kaitstud enklaavi ja võimaldab kasutada Touch ID-d juurdepääsu funktsiooniks.
- Kasutage Single Sign On SSH-d. Olen kirjutanud juhendi selle meetodi seadistamiseks (inglise keeles). Üks single sign on SSH eeliseid on võimalus rakendada teie identiteedipakkuja turvapoliitikaid — sealhulgas mitme teguri autentimise (MFA) toetamine.
Agent forwarding'i turvaline kasutamine
SSH-agendi edastamine võimaldab kaugseadmest ligipääsu teie kohaliku seadme SSH-agendile. Kui kasutate SSH-d, kus on lubatud agent edastamine (tavaliselt ssh -A kaudu), sisaldab ühendus kahte kanalit: teie interaktiivne sessioon ja agent edastamise kanal. Selle kanali kaudu ühendatakse Unix-sokkel, mille on loonud teie kohaliku SSH-agendi, kaugseadmest. See on riskantne meetod, kuna root-juurdepääsuga kasutaja kaugseadmest võib pääseda teie kohaliku SSH-agendi juurde ja potentsiaalselt esineda võrgus teie nimel. Kasutades Open SSH komplekti standardset SSH-agenti, ei saa te isegi teada, et see juhtus. U2F võtme (või Sekey) olemasolu aitab teil tõhusalt takistada igasuguseid katseid teie SSH-agenti kaugelt ära kasutada.
Isegi sellise ettevaatusabinõuga on hea mõte võimalikult harva kasutada agent edastamist. Ärge kasutage seda igal sessioonil — kasutage agent edastamist ainult siis, kui olete kindel, et see on praeguse sessiooni jaoks vajalik.
Seisakust sessioonist väljumine
Võrgukatkestused, programmide kontrollimatu käitumine või juhtimisjärjestus, mis blokeerib klaviatuuri sisendi - need on kõik võimalikud SSH-seansi katkestamise põhjused.
Külmunud seanssi saab lõpetada mitmel viisil:
- Automaatne väljumine võrgukatkestuse korral. Oma .ssh/config faili tuleb lisada järgnev:
ServerAliveInterval 5 ServerAliveCountMax 1ssh saadab iga ServerAliveInterval sekundi järel echo kaugserverile, et kontrollida ühendust. Kui rohkem kui ServerAliveCountMax echo ei saa vastust, lõpetab ssh ühenduse ajapiiranguga ja väljub seansist.
- Seansist välja pääsemine. ssh kasutab vaikimisi sümbolit ~ (tilde) juhtimissümbolina. Käsk ~. lõpetab avatud ühenduse ja toob teid tagasi terminali. (Juhtimisjärjestusi saab sisestada ainult uuel real.) Käsk ~? kuvab selle seansi kõik saadaval olevad käsud. Pidage meeles, et rahvusvahelistel klaviatuuridel võib tildi sümboli sisestamiseks olla vajalik klahvi ~ kaks korda vajutada.
Miks üldse juhtub külmunud seansse? Interneti loomise ajal liikusid arvutid harva paigast. Tänapäeval, kui kasutate sülearvuteid ja vahetate erinevate IPv4 WiFi-võrkude vahel, muutub teie IP-aadress. Kuna SSH toetub TCP-ühendustele, mis omakorda sõltuvad stabiilsest IP-aadressist, kaotavad teie SSH ühendused iga kord, kui vahetate võrke, soketi deskriptorid ja tegelikult kaovad. Kui teie IP-aadress muutub, vajab teie võrguusaldus aega, et tuvastada deskriptorite kaotus. Kui tekivad võrgu probleemid, ei soovi me, et TCP-ühenduse üks sõlm katkestaks selle liiga vara. Seetõttu proovib protokoll andmete edastamist uuesti mitmeid kordi, enne kui lõpuks alla annab. Sel ajal näeb teie terminalis seanss välja, nagu oleks see seiskunud. IPv6 toob kaasa mitmeid mobiilsusega seotud omadusi, mis võimaldavad seadmel säilitada koduaadressi võrgu vahetamise ajal. Võib-olla mõne päeva pärast ei ole see enam nii suur probleem.
Kuidas hoida pidev terminal avatud eemalolevas sõlmes
On kaks erinevat lähenemist, kuidas säilitada ühendust, kui liikuda erinevate võrkude vahel või soovides lühidalt katkestada.
1. Kasutage või
Kui vajate tõeliselt katkematut ühendust, isegi kui vahetate võrke, kasutage mobiilset Mosh'i terminali. See on turvaline terminal, mis alustab SSH-käeandmisega ja seejärel liigub oma enda krüpteeritud kanalile kogu sessiooni vältel. Nii loob Mosh eraldi, äärmiselt vastupidava ja turvalise kanali, mis talub interneti katkestusi, teie sülearvuti IP-aadressi muutusi, tõsiseid võrgu katkemisi ja palju muud, ning seda kõike UDP-ühenduste ja Mosh'i sünkroonimisprotokolli abil.
Moshi kasutamiseks peate selle installima nii kliendile kui serverile ning avama sadamad 60000-61000 ebajuhitud UDP-traffici jaoks oma kaughostile. Edasi, et ühendada, piisab, kui kasutada mosh user@server.
Mosh töötab ekraanide ja klahvivajutuste tasemel, mis annab sellele mitu eelist võrreldes SSH kliendi ja serveri vahel tavapärase binaarvoo edastamisega. Kui me peame sünkroniseerima ainult ekraanid ja klahvivajutused, siis hiljem katkestatud ühenduse taastamine muutub oluliselt lihtsamaks. Kui SSH puhverdab ja saadab kõik, mis on juhtunud, piisab Mosh'ist, kui ta puhverdab klahvivajutused ja sünkroniseerib terminali viimase kaadri kliendiga.
2. Kasuta tmux'i
Kui soovid "tulla ja minna, kui soovid" ja hoida oma terminaliseanssi eemal, kasuta tmux. Mulle meeldib tmux ja kasutan seda pidevalt. Kui sinu SSH-ühendus katkeb, piisab, et tagasi oma tmux seansi saada, kui lihtsalt uuesti ühenduda ja sisestada tmux attach. Lisaks on seal sellised imetoredad funktsioonid nagu siseterminalilised vahelehed ja paneelid, mis on sarnased iOS terminali vahelehtedele, ja võimalus jagada terminale teistega.
Mõned inimesed armastavad kaunistada oma tmuxi Byobu'ga, paketiga, mis oluliselt parandab tmuxi kasutusmugavust ja lisab sellele palju otseteed. Byobu tuleb koos Ubuntu'ga ja seda on Mac'i kohta lihtne installida Homebrew kaudu.
Kaugseansi jagamine sõbraga
Mõnikord võib tekkida soov jagada SSH seanssi kellegagi, kes ei viibi samas toas, kui lahendate serverite keerulisi probleeme. Tmux sobib selleks ülesandeks ideaalselt! Piisab vaid mõnest lihtsast sammust:
- Veenduge, et tmux on teie bastioniserveris või mõnes muus serveris, millega soovite töötada.
- Kumbki teist peab SSH kaudu seadmesse sisse logima, kasutades ühte kontot.
- Üks teist peab käivitama tmux, et alustada tmux seanssi.
- Teine peab käivitama tmux attach
- Voilà! Teil on ühine terminal.
Kui soovite keerukamaid mitme kasutaja tmux seansse, proovige tmate'i, see on tmuxi fork, mis oluliselt lihtsustab ühiseid terminaliseansse.
Allikas: habr.com
