SSH ni nini na inafanyaje kazi?
Jifunze jinsi SSH inavyotumia port 22 na usimbaji fiche kulinda mawasiliano ya seva. Pata ufafanuzi wa tofauti kati ya funguo za siri na nenosiri kwa usalama wa mbali.
SSH ni nini?
SSH (secure shell) ni itifaki ya kuingia kwenye kompyuta iliyo mbali na kuendesha amri kupitia muunganisho uliosimbwa kwa njia fiche. Unachochapa huenda kwenye mashine ya mbali, matokeo yake hurudi, na hakuna mtu anayefuatilia mtandao katikati anayeweza kusoma chochote kati ya hayo. Seva ya Linux iliyokodishwa haina skrini wala kibodi iliyounganishwa nayo, kwa hivyo SSH ndiyo njia inayotumiwa kuitumia mashine hiyo.
Jina hili linahusu mambo mawili. SSH ni itifaki, iliyoelezewa katika RFC 4251 hadi RFC 4254. OpenSSH ni programu inayotekeleza itifaki hiyo, na ndiyo inayotumiwa na karibu kila seva ya Linux na kila kompyuta ya mkononi. Mtu anaposema "SSH into the server", anamaanisha programu ya mteja ssh kwenye mashine yake inayowasiliana na programu ya seva sshd iliyo upande mwingine.
Tatizo ambalo SSH ilijengwa kulitatua
Remote login ni ya zamani zaidi kuliko SSH. Telnet ilifungua muunganisho wa TCP wa kawaida kwenye port 23 na kutuma kila byte kama ilivyoandikwa. Hakuna kitu kilichosimbwa (encrypted), na hilo lilijumuisha nenosiri lako. Mtu yeyote aliyeweza kuona traffic hiyo angeweza kuisoma: mtu aliyekuwa kwenye mtandao uleule wa ofisi, au mwendeshaji wa router yoyote iliyokuwa kwenye njia hiyo. Familia ya rlogin ilikuwa na udhaifu uleule, na iliamini mashine ya mteja kwa jina lake, jambo ambalo linamaanisha kuamini chochote ambacho mtandao ulidai jina hilo kuwa.
Tatu Ylönen aliandika SSH ya kwanza mwaka 1995 katika Chuo Kikuu cha Teknolojia cha Helsinki, baada ya shambulio la kunusa nenosiri (password sniffing) kwenye mtandao wa chuo kikuu. Usanifu huu unahifadhi sehemu muhimu ya telnet, mtiririko wa byte kati ya terminal yako na shell ya mbali, na unaongeza vitu viwili ambavyo telnet haina jibu kwavyo: usimbaji wa mtiririko huo, na uthibitisho kwamba seva iliyo upande mwingine ndiyo ile uliyokusudia kuifikia.
Sehemu hiyo ya pili ni rahisi kuipuuza, na ndiyo nusu ya kile ambacho SSH ni. Usimbaji pekee haungeweza kukuokoa. Mashine iliyo katikati inaweza kukubali muunganisho wako, kuusimba kikamilifu, kusoma kila kitu unachotuma, na kukipitisha kwa seva halisi. SSH inazuia hilo kwa kuipa kila seva utambulisho wa kudumu, unaoitwa host key, na kuukagua katika kila muunganisho.
Jinsi mfano wa mteja na seva unavyofanya kazi
Kuna programu mbili. Kwenye seva, sshd huendesha wakati wote na kusubiri miunganisho. Kwenye mashine yako, ssh hutengeneza miunganisho hiyo. Hizi ni programu tofauti zenye faili za usanidi tofauti, na kuchanganya hizi mbili ndiyo sababu ya kawaida zaidi inayofanya marekebisho kutokuwa na athari yoyote.
- Seva husoma
/etc/ssh/sshd_config. Hapa ndipo kuingia kwa nenosiri huzimwa na port ya kusikiliza huwekwa. - Mteja husoma
/etc/ssh/ssh_configkwa ajili ya mipangilio ya mfumo, kisha~/.ssh/configkwa ajili ya mipangilio yako binafsi ya kila host.
Kwenye Debian na Ubuntu, unit ya huduma inaitwa ssh. Kwenye RHEL, Rocky na Fedora inaitwa sshd. Matoleo mapya ya Ubuntu huifunga ikiwa imewezeshwa na socket, kwa hivyo systemctl status ssh inaweza kuripoti inactive (dead) wakati mashine inafikika kikamilifu, kwa sababu ssh.socket ndiyo unit inayofanya usikilizaji na huanzisha huduma hiyo inapohitajika.
Mteja si lazima awe OpenSSH. PuTTY kwenye Windows, Termius kwenye simu, na usaidizi wa mbali uliopo ndani ya wahariri (editors) wote huzungumza itifaki ileile kwa sshd ileile. Windows 10 na 11 pia zinajumuisha mteja wa OpenSSH, kwa hivyo ssh you@server hufanya kazi kwenye PowerShell bila kuhitaji kusakinisha chochote.
Kwa nini SSH hutumia port 22?
Port ni namba inayouambia kernel ni programu ipi inayoisikiliza inayomiliki muunganisho unaoingia, na ports kwenye Linux hufanya kazi kwa namna ileile kwa kila huduma. SSH hutumia 22 kwa sababu IANA iliikabidhi mwaka 1995. Ylönen aliomba namba ya bure iliyokuwa karibu na itifaki ambazo SSH iliandikwa kuzibadilisha: 21 ilikuwa FTP, 23 ilikuwa telnet, na 22 haikutumika.
Kwa sababu 22 ndiyo chaguo-msingi, kila kitu huichukulia hivyo. Git remote yako, script yako ya backup, na control panel ya mtoa huduma wako zote hujaribu 22 kwanza. Hivyo ndivyo kila scanner ya kiotomatiki kwenye Internet inavyofanya. Seva mpya yenye login ya password iliyowezeshwa huanza kukusanya mistari kama hii kwenye /var/log/auth.log ndani ya dakika chache baada ya kuwaka:
Failed password for invalid user admin from 203.0.113.55 port 43122 ssh2Trafiki hiyo ni ya kudumu, na haikulengwi wewe binafsi. Kuhamisha sshd kwenda port 2222 huondoa mistari mingi ya aina hiyo, kwa sababu scanners hufagia Internet nzima kwenye 22 badala ya kuichunguza seva yako. Hii haifanyi mashine kuwa ngumu zaidi kuvamiwa na mtu yeyote anayeichunguza kikweli. Ichukulie kubadilisha port kama njia ya kupunguza kelele na si kitu kingine.
Unaweza kuitazama seva ikijibu kabla hata hujalog in:
nc 203.0.113.10 22Kwenye Ubuntu 24.04 hiyo huchapisha kitu kinachokaribia SSH-2.0-OpenSSH_9.6p1 Ubuntu-3ubuntu13. Banner hutumwa kwa maandishi wazi (cleartext), kabla ya encryption yoyote kuwepo, kwa sababu pande zote mbili zinahitaji kukubaliana kuhusu toleo la itifaki. Bonyeza Ctrl+C ili kufunga muunganisho.
Nini hutokea kwenye mtandao unapounganisha
Mlolongo ufuatao ni kile ambacho ssh you@server hufanya kabla hujaona prompt.
- Mteja hutatua hostname kuwa anwani ya IP, kisha hufungua muunganisho wa TCP kwenye port 22.
- Pande zote mbili hutuma banner ya toleo lao kwa maandishi ya wazi (cleartext).
- Pande zote mbili hutuma orodha ya algoriti wanazotumia: ubadilishaji wa funguo (key exchange), cipher, uthibitishaji wa ujumbe, na compression. Bado ni maandishi ya wazi. Chaguo lenye nguvu zaidi ambalo pande zote mbili zinalijua ndilo huchaguliwa.
- Ubadilishaji wa funguo huanza. OpenSSH ya sasa hupendelea
curve25519-sha256. Pande zote mbili hupata siri moja ya pamoja (shared secret) bila siri hiyo kupita kwenye mtandao, kwa hivyo mtu aliyerekodi mazungumzo yote hawezi kuigundua baadaye. - Seva husaini matokeo ya ubadilishaji huo kwa kutumia funguo yake ya faragha ya seva (host private key). Mteja wako hukagua sahihi hiyo dhidi ya funguo ya umma ya seva (host public key) iliyo kwenye faili zake. Hii ndiyo hatua inayozuia mashine iliyo katikati kujifanya ni seva yako.
- Usimbaji (encryption) huanza.
chacha20-poly1305@openssh.comndiyo cipher chaguo-msingi katika OpenSSH ya sasa. - Hapo ndipo mteja hukuthibitisha wewe, kwa kutumia nenosiri au funguo. Jina lako la mtumiaji na nenosiri husafiri ndani ya njia iliyosimbwa.
- Mteja hufungua channel na kuomba shell.
Mpangilio katika orodha hiyo ndio tofauti nzima kati ya SSH na telnet. Uthibitishaji hutokea baada ya channel kusimbwa na baada ya seva kuthibitisha utambulisho wake, kwa hivyo hakuna wakati ambapo nenosiri lako liko wazi kwenye mtandao.
Mtu anayechunguza mtandao bado anaweza kujua mambo fulani. Anaona anwani yako ya IP, anwani ya IP ya seva, port 22, banner zote mbili za toleo kwa maandishi ya wazi, na muda pamoja na ukubwa wa kila pakiti. Haoni jina lako la mtumiaji, nenosiri lako, amri zako, au matokeo yake. Utafutaji wa hostname katika hatua ya 1 si sehemu ya SSH na kwa kawaida huwa si wa faragha, kwa hivyo hoja ya DNS inayotatua jina la seva yako inaweza kufichua ni mashine ipi unayotaka kufikia ingawa kikao chenyewe hubaki kikiwa kimefungwa.
Ufunguo wa seva (host key), na ujumbe wa kwanza wa fingerprint wakati wa kuunganisha
Wakati openssh-server inaposakinishwa, hutengeneza jozi za funguo za seva (host key pairs) kwa ajili ya mashine hiyo na kuziandika kwenye /etc/ssh/, kwa mfano ssh_host_ed25519_key na ssh_host_ed25519_key.pub. Nusu ya faragha (private key) haitoki kamwe kwenye seva. Nusu ya umma (public key) ndiyo utambulisho wa seva, na ndiyo inayotumiwa kuhakiki sahihi (signature) katika hatua ya 5.
Mara ya kwanza unapounganisha kwenye seva mpya, mteja wako (client) hana kitu cha kulinganisha nacho, kwa hiyo anakuuliza:
The authenticity of host '203.0.113.10 (203.0.113.10)' can't be established.
ED25519 key fingerprint is SHA256:E9nVQ5Sm2oQ3nGm5Zf1tOaU7Xh0k2p8bWc4dLrTvYxA.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?Fingerprint ni hash ya SHA256 ya ufunguo wa umma wa seva, iliyochapishwa katika mfumo wa base64, hivyo ni fupi vya kutosha kulinganishwa kwa macho. Kuandika yes huingiza ufunguo huo kwenye ~/.ssh/known_hosts katika mashine yako mwenyewe. Kila muunganisho wa baadaye kwenye anwani hiyo hiyo hulinganisha ufunguo unaotolewa na seva na ule uliotunzwa. Zinapolingana, hakuna kitu kinachochapishwa na unaenda moja kwa moja kwenye prompt yako.
Mfumo huu unaitwa "trust on first use" (kuamini wakati wa matumizi ya kwanza), na ni vyema kuwa wazi kuhusu gharama yake. Muunganisho wa kwanza ndio wakati pekee ambao haujalindwa, kwa sababu unakubali ufunguo ambao hujawahi kuuona hapo awali. Ili kuziba mwanya huo, pata fingerprint kupitia njia nyingine na uilinganishe. Watoa huduma wengi huichapisha kwenye matokeo ya boot (boot output) yanayoonekana kwenye web console yao, na unaweza pia kuichapisha kwenye seva yenyewe:
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pubHiyo huchapisha mfuatano uleule wa SHA256: ambao prompt ilikuonyesha. Chaguo la [fingerprint] kwenye prompt lipo kwa ajili ya hili hasa: bandika (paste) fingerprint unayotarajia, na mteja ataendelea tu ikiwa inalingana na kile ambacho seva imewasilisha.
Kwenye Debian na Ubuntu, known_hosts hufanyiwa hashing kwa chaguo-msingi, hivyo faili hilo huwa na mistari inayoanza na |1| badala ya majina ya seva (hostnames) yanayosomeka. Tekeleza ssh-keygen -F 203.0.113.10 ili kupata ingizo la seva moja.
Kwa nini SSH inasema host key imebadilika?
Mapema au baadaye utakutana na ukuta huu wa maandishi:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!Unaishia na Host key verification failed. na mteja anakataa kuunganisha. Pia inachapisha Password authentication is disabled to avoid man-in-the-middle attacks., kwa sababu kuandika nenosiri lako kwenye mashine usiyoijua ndiyo madhara kamili ambayo ukaguzi huu upo ili kuzuia.
Ujumbe huu unaonekana kama dharura, na mara nyingi si hivyo. Sababu za kawaida ni:
- Ulijenga upya au kusakinisha upya seva, kwa hivyo
sshdilizalisha host keys mpya wakati wa boot ya kwanza. Hii ndiyo sababu ya kawaida zaidi. - Uliharibu VPS moja na kuunda nyingine, na mtoa huduma alikabidhi mashine mpya anwani ya IP ya zamani.
- Unaunganisha kupitia forward au load balancer ambayo sasa inafikia mashine tofauti ya backend.
- Kuna kitu kinachozuia muunganisho wako.
Amua ni ipi kati ya hizo kabla ya kufuta chochote. Ikiwa ulisakinisha upya mashine dakika kumi zilizopita, sababu iko wazi. Ikiwa hakuna kilichobadilika kwa upande wako, simama na uchunguze, kwa sababu onyo hili ni ukaguzi unaofanya kazi yake. Mara tu unapokuwa na uhakika, futa entry ya zamani na uunganishe tena:
ssh-keygen -R 203.0.113.10Muunganisho unaofuata unaonyesha kidokezo cha fingerprint tena, ambacho kinakupa nafasi mpya ya kuilinganisha na ile iliyo kwenye console ya mtoa huduma.
Uthibitishaji kwa nenosiri dhidi ya uthibitishaji kwa ufunguo
Uthibitishaji kwa nenosiri hutuma nenosiri lako ndani ya njia iliyosimbwa tayari, na sshd hulilinganisha na hifadhidata ya akaunti, kwa kawaida kupitia PAM (pluggable authentication modules). Hahitaji maandalizi yoyote, ndiyo maana mtoa huduma anaweza kukupa seva mpya ikiwa na nenosiri la root pekee.
Udhaifu wake si usimbaji. Udhaifu ni kwamba nenosiri ni siri fupi, unaituma kwenye seva kila unapoingia, na port 22 hujaribiwa kila saa na mashine ambazo hazichoki kamwe.
Uthibitishaji kwa ufunguo wa umma (public key) hufanya kazi tofauti. Unatengeneza jozi ya funguo kwenye mashine yako. Nusu ya umma huwekwa kwenye ~/.ssh/authorized_keys ndani ya akaunti yako kwenye seva. Nusu ya faragha (private key) hubaki kwenye kompyuta yako na haitumwi kamwe. Ili kuingia, mteja husaini data inayojumuisha kitambulisho cha kikao kutoka kwa ubadilishaji wa funguo, na seva huthibitisha sahihi hiyo kwa kutumia ufunguo wa umma ilionao. Kwa sababu data iliyosainiwa imefungwa kwenye kikao hiki kimoja, sahihi iliyonaswa haina thamani kwa kitu kingine chochote.
Zingatia mwelekeo, kwa sababu kuugeuza ni jambo la kawaida na ni hatari: ufunguo wa umma huwekwa kwenye seva, ufunguo wa faragha hubaki nawe. Ufunguo wa faragha uliokopiwa kwenye seva ni ufunguo ambao huwezi tena kuuamini.
Uingiaji kwa ufunguo una njia zake za kufeli. sshd hupuuza funguo wakati ruhusa za faili ziko wazi sana, na husema hivyo kwenye logi ya seva:
Authentication refused: bad ownership or modes for directory /home/ubuntu/.sshMteja hukuambia tu Permission denied (publickey), ambayo ni ujumbe uleule kwa sababu nyingi tofauti, kwa hivyo kusoma kosa la publickey kwa usahihi ni jambo la maana kujifunza kabla hujajifungia nje. Kazi ya kivitendo ya kutengeneza funguo, kuzilinda kwa passphrase na kuzipakia kwenye agent iko katika usimamizi wa funguo za SSH, na kuzima uingiaji wa nenosiri bila kujifungia nje iko katika kuimarisha usalama wa SSH kwenye VPS.
SFTP, scp na port forwarding hutumia muunganisho uleule
Hii ndiyo dhana inayofanya ulimwengu wa SSH kueleweka kwa urahisi. Uthibitishaji hufungua muunganisho uliosimbwa, na muunganisho huo unaweza kubeba njia (channels) kadhaa huru kwa wakati mmoja. Shell ni aina moja tu ya njia kati ya nyingi.
- Shell ya mbali.
ssh you@serverhufungua njia ya kikao na kuomba shell shirikishi. - Amri moja.
ssh you@server uptimehufungua njia, huendesha amri moja, huchapisha matokeo na kutoka. - SFTP. Mteja humwomba
sshdkuanzisha mfumo wake mdogo wasftp, na uhamishaji wa faili hufanyika ndani ya muunganisho uleule. SFTP ni itifaki ya uhamishaji faili inayotumia SSH, na haina uhusiano wowote wa kiusanifu na FTP. Itifaki ambayo ni FTP iliyoongezwa usimbaji inaitwa FTPS, na haina uhusiano nayo. - scp. Hunakili faili kwa kutumia login ileile. Tangu OpenSSH 9.0, iliyotolewa mwaka 2022,
scphutumia itifaki ya SFTP kwa nyuma kama chaguo-msingi. - Port forwarding.
ssh -L 8080:localhost:80 you@serverhugeuza port 8080 kwenye kompyuta yako kuwa mlango wa kufikia port 80 kwenye seva, ikisafirishwa ndani ya muunganisho uliosimbwa.-Rhusambaza data katika mwelekeo mwingine, na-D 1080hugeuza kikao kuwa SOCKS proxy. - Git. Remote kama
git@github.com:user/repo.gitni login ya SSH ambayo upande wa mbali huendesha kishughulikia amri badala ya shell. - rsync na Ansible pia ni wateja wa SSH. Hufungua njia, huendesha kitu, na kusoma matokeo yaliyorejeshwa.
Kila kipengele kwenye orodha hiyo hutumia port ileile, ukaguzi uleule wa host key, na vitambulisho vilevile. Ndiyo maana kusanidi uthibitishaji wa key mara moja kunaleta faida papo hapo: kila moja ya zana hizo hurithi usanidi huo. Pia ndiyo maana faili ileile ya ~/.ssh/config inayofupisha logins zako ndiyo faili inayokusaidia unapokuwa unasimamia seva kadhaa za Linux kutoka kwenye kompyuta moja.
Mambo ambayo SSH haifanyi
- Haifanyi seva yako kuwa salama. SSH hulinda njia ya kuelekea mlangoni. Mlango bado upo, na watu wataendelea kujaribu kuushika. Kuzuia majaribio ya mara kwa mara ya kuingia kwa kutumia fail2ban hudhibiti idadi ya majaribio hayo, na uthibitishaji kwa kutumia ufunguo pekee huondoa kitu wanachokisia.
- Haikulindi dhidi ya mashine yako mwenyewe. Mtu yeyote mwenye ufikiaji wa kompyuta yako ya mkononi anao ufunguo wako wa faragha na wakala wako uliowashwa.
- Haifichi ukweli kwamba unatumia SSH. Nambari ya port na bango la toleo la maandishi wazi (cleartext version banner) hutangaza hilo.
- Haishughulikii kinachotokea kabla ya muunganisho kuwepo. Utafutaji wa jina (name lookup), na uamuzi wako kuhusu anwani ipi ya kuiamini, vyote hutangulia.
Hatua zinazofuata
Ikiwa una seva mpya iliyo wazi kwenye dashibodi ya mtoa huduma wako hivi sasa, mpangilio wa kazi unaofaa ni huu. Ingia, tengeneza mtumiaji wa kawaida, sakinisha ufunguo wako, kisha funga njia rahisi za kuingilia nyuma yako. Dakika kumi za kwanza kwenye VPS mpya inaelezea mpangilio huo kuanzia mwanzo hadi mwisho, na VPS ni nini hasa inafafanua mashine iliyo chini yake ikiwa maneno hayo bado ni mapya kwako. Baada ya hapo, funguo na uimarishaji wa usalama (hardening) ndizo makala mbili unazopaswa kusoma, kwa mpangilio huo.
FAQ
SSH inamaanisha nini?
SSH inamaanisha secure shell. Ni itifaki ya kuingia kwenye kompyuta ya mbali na kuendesha amri kupitia muunganisho uliosimbwa, iliyofafanuliwa katika RFC 4251 hadi RFC 4254. OpenSSH ndiyo utekelezaji unaotumiwa na karibu kila mtu: mteja wa ssh kwenye mashine yako, na seva ya sshd kwenye ile ya mbali. Ilichukua nafasi ya telnet, ambayo ilituma kila kitu ikiwemo nywila kupitia mtandao kwa maandishi ya wazi (plain text).
Kwa nini SSH hutumia port 22?
IANA ilikabidhi port 22 kwa SSH mwaka 1995, karibu na FTP kwenye 21 na telnet kwenye 23, itifaki ambazo iliandikwa kuzichukua nafasi. Hakuna kinacholazimisha namba hiyo: Port katika /etc/ssh/sshd_config huibadilisha kwenye seva, na ssh -p huchagua nyingine kwenye mteja. Kwa sababu 22 ndiyo chaguo-msingi, skana za kiotomatiki hugonga mlango huo kila mara, ndiyo maana /var/log/auth.log ya seva mpya hujazwa na mistari ya Failed password for invalid user. Kubadilisha port hupunguza kelele hiyo na hakuongezi ulinzi wowote wa kweli.
Nifanye nini wakati SSH inapoonya kuwa host key imebadilika?
Tafuta sababu kabla ya kufuta chochote. Sababu ya kawaida haina madhara: seva ilijengwa upya, kwa hivyo sshd ilitengeneza host keys mpya, au mashine mpya ilipewa anwani ya zamani ya IP. Ikiwa unajua mashine ilijengwa upya, endesha ssh-keygen -R <host> ili kuondoa ufunguo ulihifadhiwa, unganisha tena, na ulinganishe fingerprint unayoonyeshwa na ile inayoripotiwa na konsole ya mtoa huduma wako. Ikiwa hakuna kilichobadilika upande wako, usijaribu kuunganisha na usichape nywila yako. OpenSSH tayari hukataa uthibitishaji wa nywila katika hali hii kwa sababu hiyo hiyo.
Je, SFTP na scp ni tofauti na SSH?
Hizi huendeshwa juu ya SSH. Mara tu unapothibitishwa, muunganisho wa SSH unaweza kubeba njia (channels) kadhaa, na shell ni moja tu kati ya hizo. SFTP ni itifaki ya uhamishaji wa faili inayotumia mfumo mdogo wa sftp wa sshd kupitia muunganisho huo huo, na scp imekuwa ikitumia itifaki ya SFTP chini yake tangu OpenSSH 9.0. Port forwarding na Git kupitia SSH pia ni njia kwenye muunganisho huo huo. Zote hutumia port ile ile, ukaguzi ule ule wa host key, na kuingia kule kule. Kumbuka kuwa SFTP si FTP iliyoongezwa usimbaji; ile inaitwa FTPS na ni itifaki tofauti.
Je, uthibitishaji kwa kutumia ufunguo (key authentication) ni bora kuliko nywila?
Ndiyo, kwa seva yoyote inayoweza kufikiwa kutoka kwenye Internet. Nywila ni siri fupi unayompa seva kila unapoingia, na port 22 hukisiwa kila mara na wateja wa kiotomatiki. Kwa jozi ya funguo (key pair), nusu ya kibinafsi (private key) haiwahi kuondoka kwenye mashine yako: mteja husaini data iliyofungwa kwenye kikao cha sasa, na seva hukagua sahihi hiyo dhidi ya ufunguo wa umma (public key) katika ~/.ssh/authorized_keys. Sahihi iliyorekodiwa haiwezi kutumiwa tena dhidi ya seva nyingine. Linda ufunguo wa kibinafsi kwa passphrase, kwa sababu faili ya ufunguo isiyo na passphrase ni njia ya kuingia kwa mtu yeyote anayeinakili.