HVORDAN Sette OPP SSH-Nøkler På Ubuntu 16.04
Introduksjon
SSH, eller secure shell, er en kryptert protokoll som brukes til å administrere og kommunisere med servere. Når du arbeider Med En Ubuntu-server, er sjansen stor for at du vil tilbringe mesteparten av tiden din i en terminalsesjon som er koblet til serveren din VIA SSH.I denne veiledningen fokuserer vi på å sette OPP SSH-nøkler for en vanilje Ubuntu 16.04-installasjon. SSH-nøkler gir en enkel og sikker måte å logge inn på serveren din og anbefales for alle brukere.
Trinn 1 — Opprett Rsa-Nøkkelparet
det første trinnet er å opprette et nøkkelpar på klientmaskinen (vanligvis datamaskinen):
- ssh-keygen
som standardssh-keygen
vil opprette et 2048-biters rsa-nøkkelpar, som er sikkert nok for de fleste brukstilfeller (du kan eventuelt passere I Flagget-b 4096
for å opprette en større 4096-biters nøkkel).
etter at du har skrevet inn kommandoen, bør du se følgende utgang:
OutputGenerating public/private rsa key pair.Enter file in which to save the key (/your_home/.ssh/id_rsa):
TrykkENTER
for å lagre nøkkelparet i.ssh/
underkatalog i hjemmekatalogen, eller angi en alternativ bane.
Hvis du tidligere hadde generert ET SSH-nøkkelpar, kan du se følgende melding:
Output/home/your_home/.ssh/id_rsa already exists.Overwrite (y/n)?
hvis du velger å overskrive nøkkelen på disken, vil du ikke kunne godkjenne med den forrige nøkkelen lenger. Vær veldig forsiktig når du velger ja, da dette er en destruktiv prosess som ikke kan reverseres.
Du bør da se følgende spørsmål:
OutputEnter passphrase (empty for no passphrase):
her kan du eventuelt legge inn en sikker passordfrase, som er sterkt anbefalt. En passordfrase legger til et ekstra lag med sikkerhet for å hindre uautoriserte brukere i å logge på. For å lære mer om sikkerhet, se vår veiledning om Hvordan Du Konfigurerer SSH-Nøkkelbasert Godkjenning på En Linux-Server.
du skal da se følgende utdata:
OutputYour 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:a9:49:2e:2a:5e:33:3e:a9:de:4e:77:11:58:b6:90:26 username@remote_hostThe key's randomart image is:+------+| ..o || E o= . || o. o || .. || ..S || o o. || =o.+. ||. =++.. ||o=++. |+-----------------+
du har nå en offentlig og privat nøkkel som du kan bruke til å godkjenne. Det neste trinnet er å plassere den offentlige nøkkelen på serveren din, slik at DU kan bruke SSH-nøkkelbasert godkjenning til å logge på.
Trinn 2-Kopier Den Offentlige Nøkkelen Til Ubuntu Server
den raskeste måten å kopiere den offentlige nøkkelen Til Ubuntu vert er å bruke et verktøy kaltssh-copy-id
. På grunn av sin enkelhet anbefales denne metoden sterkt hvis tilgjengelig. Hvis du ikke har ssh-copy-id
tilgjengelig for deg på klientmaskinen din, kan du bruke en av de to alternative metodene i denne delen(kopiering via passordbasert SSH, eller manuelt kopiering av nøkkelen).
Kopiering Offentlig Nøkkel Ved hjelp av ssh-copy-id
ssh-copy-id
verktøyet er inkludert som standard i mange operativsystemer, så du kan ha den tilgjengelig på ditt lokale system. For at denne metoden skal fungere, må du allerede ha passordbasert SSH-tilgang til serveren din.
for å bruke verktøyet må du bare angi den eksterne verten du vil koble til og brukerkontoen DU har PASSORD SSH-tilgang til. Dette er kontoen som DEN offentlige SSH-nøkkelen skal kopieres til.
syntaksen er:
- ssh-copy-id username@remote_host
du kan se følgende melding:
OutputThe authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.Are you sure you want to continue connecting (yes/no)? yes
dette betyr at den lokale datamaskinen ikke gjenkjenner den eksterne verten. Dette skjer første gang du kobler til en ny vert. Skriv » ja «og trykk ENTER
for å fortsette.
deretter skanner verktøyet din lokale konto forid_rsa.pub
– tasten som vi opprettet tidligere. Når den finner nøkkelen, vil den be deg om passordet til den eksterne brukerens konto:
Output/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new [email protected]'s password:
Skriv inn passordet (skrivingen din vil ikke bli vist av sikkerhetshensyn) og trykk ENTER
. Verktøyet vil koble til kontoen på den eksterne verten ved hjelp av passordet du oppgav. Det vil da kopiere innholdet i ~/.ssh/id_rsa.pub
nøkkelen til en fil i den eksterne kontoens hjem ~/.ssh
katalog kalt authorized_keys
.
Du bør se følgende utdata:
OutputNumber of key(s) added: 1Now try logging into the machine, with: "ssh '[email protected]'"and check to make sure that only the key(s) you wanted were added.
på dette tidspunktet erid_rsa.pub
– tasten lastet opp til den eksterne kontoen. Du kan fortsette Til Trinn 3.
Kopiere Offentlig Nøkkel VED HJELP AV SSH
hvis du ikke harssh-copy-id
tilgjengelig, men du har passordbasert SSH-tilgang til en konto på serveren din, kan du laste opp nøklene dine ved hjelp av en vanlig SSH-metode.
Vi kan gjøre Dette ved å bruke kommandoencat
for å lese innholdet i den offentlige SSH-nøkkelen på vår lokale datamaskin og rør det gjennom EN SSH-tilkobling til den eksterne serveren.
På den andre siden kan vi sørge for at katalogen~/.ssh
eksisterer og har de riktige tillatelsene under kontoen vi bruker.
vi kan da sende ut innholdet vi sendte over til en fil som heter authorized_keys
i denne katalogen. Vi bruker >>
redirect-symbolet for å legge til innholdet i stedet for å overskrive det. Dette vil la oss legge til nøkler uten å ødelegge tidligere lagt nøkler.
hele kommandoen ser slik ut:
- cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"
du kan se følgende melding:
OutputThe authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.Are you sure you want to continue connecting (yes/no)? yes
dette betyr at den lokale datamaskinen ikke gjenkjenner den eksterne verten. Dette skjer første gang du kobler til en ny vert. Skriv » ja «og trykk ENTER
for å fortsette.
Etterpå bør du bli bedt om å skrive inn det eksterne brukerkontopassordet:
Output [email protected]'s password:
etter at du har skrevet inn passordet ditt, vil innholdet i id_rsa.pub
– tasten bli kopiert til slutten av authorized_keys
– filen til den eksterne brukerens konto. Fortsett Videre til Trinn 3 hvis dette var vellykket.
Kopiere Offentlig Nøkkel Manuelt
hvis du ikke har passordbasert SSH-tilgang til serveren din, må du fullføre prosessen ovenfor manuelt.
vi legger manuelt til innholdet iid_rsa.pub
– filen til ~/.ssh/authorized_keys
– filen på den eksterne maskinen.
for å vise innholdet iid_rsa.pub
– tasten, skriv dette inn i din lokale datamaskin:
- cat ~/.ssh/id_rsa.pub
du vil se nøkkelinnholdet, som skal se omtrent slik ut:
Outputssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== demo@test
Få tilgang til ekstern vert ved hjelp av hvilken metode du har tilgjengelig.
når du har tilgang til kontoen din på den eksterne serveren, bør du sørge for at katalogen ~/.ssh
eksisterer. Denne kommandoen vil opprette katalogen om nødvendig, eller gjøre ingenting hvis den allerede eksisterer:
- mkdir -p ~/.ssh
Nå kan du opprette eller endre authorized_keys
fil i denne katalogen. Du kan legge til innholdet i id_rsa.pub
fil til slutten av authorized_keys
fil, opprette den om nødvendig, ved hjelp av denne kommandoen:
- echo public_key_string >> ~/.ssh/authorized_keys
i kommandoen ovenfor, erstatte public_key_string
med utdata fra kommandoen cat ~/.ssh/id_rsa.pub
som du utførte på ditt lokale system. Det skal starte med ssh-rsa AAAA...
.
Til Slutt vil vi sørge for at ~/.ssh
katalogen og authorized_keys
filen har de riktige tillatelsene satt:
- chmod -R go= ~/.ssh
dette fjerner rekursivt alle» gruppe «og» andre » tillatelser for~/.ssh/
katalogen.
hvis du bruker root
konto for å sette opp nøkler for en brukerkonto, er det også viktig at ~/.ssh
katalogen tilhører brukeren og ikke root
:
- chown -R sammy:sammy ~/.ssh
i denne opplæringen vår bruker heter sammy, men du bør erstatte riktig brukernavn i kommandoen ovenfor.
Vi kan nå forsøke passordfri godkjenning med Vår Ubuntu-server.
Trinn 3-Godkjenn Til Ubuntu Server Ved HJELP AV SSH-Nøkler
hvis du har fullført en av prosedyrene ovenfor, bør du kunne logge på den eksterne verten uten passordet til den eksterne kontoen.
den grunnleggende prosessen er den samme:
- ssh username@remote_host
hvis dette er første gang du kobler til denne verten (hvis du brukte den siste metoden ovenfor), kan du se noe slikt:
OutputThe authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.Are you sure you want to continue connecting (yes/no)? yes
dette betyr at den lokale datamaskinen ikke gjenkjenner den eksterne verten. Skriv «ja» og trykk deretter ENTER
for å fortsette.
hvis du ikke har oppgitt passord for din private nøkkel, blir du logget inn umiddelbart. Hvis du oppgav en passordfrase for den private nøkkelen når du opprettet nøkkelen, blir du bedt om å skrive den inn nå (merk at tastetrykkene dine ikke vises i terminalsesjonen for sikkerhet). Etter godkjenning skal en ny shell-økt åpne for deg med den konfigurerte kontoen på Ubuntu-serveren.
hvis nøkkelbasert godkjenning var vellykket, kan du fortsette å lære hvordan du sikrer systemet ytterligere ved å deaktivere passordgodkjenning.
Trinn 4-Deaktiver Passordautentisering på Serveren
hvis du kunne logge på KONTOEN din ved HJELP AV SSH uten et passord, har DU konfigurert SSH-nøkkelbasert godkjenning til kontoen din. Den passordbaserte autentiseringsmekanismen er imidlertid fortsatt aktiv, noe som betyr at serveren din fortsatt er utsatt for brute-force-angrep.
før du fullfører trinnene i denne delen, må du kontrollere at DU enten HAR SSH-nøkkelbasert godkjenning konfigurert for rotkontoen på denne serveren, eller helst AT DU har SSH-nøkkelbasert godkjenning konfigurert for en ikke-rotkonto på denne serveren medsudo
privilegier. Dette trinnet vil låse ned passordbaserte pålogginger, så det er avgjørende å sikre at du fortsatt kan få administrativ tilgang.
når du har bekreftet at din eksterne konto har administrative rettigheter, logg inn på din eksterne server med SSH-nøkler, enten som root eller med en konto med sudo
privilegier. Deretter åpner DU SSH-daemons konfigurasjonsfil:
- sudo nano /etc/ssh/sshd_config
i filen, søk Etter et direktiv kalt PasswordAuthentication
. Dette kan bli kommentert ut. Uncomment linjen og sett verdien til «nei». Dette vil deaktivere din evne til å logge inn via SSH ved hjelp av kontopassord:
...PasswordAuthentication no...
Lagre og lukk filen når du er ferdig ved å trykke CTRL
X
, deretter Y
for å bekrefte lagring av filen, og til slutt ENTER
for å avslutte nano. For å faktisk implementere disse endringene må vi starte sshd
service:
- sudo systemctl restart ssh
som en forholdsregel, åpne et nytt terminalvindu og test AT SSH-tjenesten fungerer riktig før du lukker denne økten:
- ssh username@remote_host
Når DU har bekreftet SSH-tjenesten, kan du trygt lukke alle gjeldende serverøkter.
SSH-demonen på Ubuntu-serveren din svarer nå bare PÅ SSH-nøkler. Passordbasert godkjenning er deaktivert.
Konklusjon
DU skal nå ha SSH-nøkkelbasert godkjenning konfigurert på serveren din, slik at du kan logge på uten å oppgi et kontopassord.
hvis du vil lære mer om Å jobbe MED SSH, ta en titt på VÅR SSH Essentials Guide.