Jeg er lat hjemme og bruker passordautentisering for hjemmemaskinene mine. Jeg er klar til å gå over til nøkkelbasert autentisering. Det er mange alternativer på nettet for hvordan du gjør dette, inkludert catting og deretter sshing nøkkelen over, scping nøkkelen direkte osv.
Jeg leter etter den enkleste og anbefalte måten å kopiere en nøkkel over, forhåpentligvis er det en praktisk innpakning et sted i Ubuntu ssh-pakken?
Jeg er allerede klar over hvordan du slår av passordinnlogging.
Kommandoen ssh-copy-id
(i openssh-client-pakken og installert som standard) gjør akkurat dette:
ssh-copy-id [email protected]
kopierer den offentlige nøkkelen til standardidentiteten din (bruk -i identity_file
for andre identiteter) til den eksterne verten.
Standardidentiteten er din "standard" ssh-nøkkel. Den består av to filer (offentlig og privat nøkkel) i katalogen ~/.ssh
, som vanligvis heter identity
, id_rsa
, id_dsa
, id_ecdsa
eller id_ed25519
(og det samme med .pub
), avhengig av type nøkkel. Hvis du ikke opprettet mer enn én ssh-nøkkel, trenger du ikke å bekymre deg for å spesifisere identiteten, ssh-copy-id vil bare velge den automatisk.
Hvis du ikke har en identitet, kan du generere en med verktøyet ssh-keygen
.
I tillegg, hvis serveren bruker en annen port enn standardporten (22
), bør du bruke anførselstegn på denne måten (kilde):
ssh-copy-id "[email protected] -p <port-number>"
Jeg liker svaret fra Marcel. Jeg kjente ikke denne kommandoen. Jeg har alltid brukt det jeg hadde funnet på Oracle-nettstedet:
cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'cat >> .ssh/authorized_keys && echo "Key copied"'
Jeg tenkte å legge det ut her fortsatt, fordi det er en god illustrasjon av hva som kan oppnås i shell-kode med kraften til ssh
. Men å bruke ssh-copy-id
er definitivt en sikrere måte å gjøre det ordentlig på!
Merk at hvis mappen .ssh
ikke allerede eksisterer, vil kommandoen ovenfor mislykkes. I tillegg kan det være bedre når du oppretter filen å angi et minimum av mulige tillatelser (i utgangspunktet bare lese- og skrive for eieren). Her er en mer avansert kommando:
cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'umask 0077; mkdir -p .ssh; cat >> .ssh/authorized_keys && echo "Key copied"'
Sett opp datamaskin for SSH-tilkobling]1.