Hur du sätter upp ssh så att du slipper frågas efter lösenord
Du kan skapa en RSA-autentiseringsnyckel som kan användas för att logga in på en fjärrserver från ditt konto, utan att du behöver ange lösenordet.
Observera att när du väl satt upp detta kan en inkräktare som bryter sig in på ditt konto/din server även få tillgång till servern du släpps in utan lösenord! Därför bör detta aldrig göras från root-kontot.
- Kör
ssh-keygen(1)
på din maskin, och tryck bara Enter när du ombeds ange ett lösenord.
Detta genererar både en öppen och en hemlig nyckel. För äldre SSH-versioner lagras dessa i~/.ssh/identity
och~/.ssh/identity.pub
; nyare versioner lagrar dem i~/.ssh/id_rsa
och~/.ssh/id_rsa.pub
. - Lägg därefter innehållet i filen med den öppna nyckeln
(
.pub
) till~/.ssh/authorized_keys
på fjärrservern (filen bör ha behörighet 600).
Om du är utvecklare och vill ha tillgång till debian.org med en sådan nyckel är det möjligt att låta utvecklardatabasen distribuera din nyckel till alla debian.org-maskiner. Se dokumentationen för LDAP-portalen.
Det ska nu gå att logga in till spegeln med ssh utan att du blir efterfrågad om ett lösenord.
Viktigt:
Observera att alla som har läsbehörighet till den filen med den hemliga
nyckeln kan använda den och få samma lösenordslösa åtkomst till fjärrdatorn,
inklusive alla som har rootbehörighet på din lokala maskin.
Därför rekommenderas det å det bestämdaste att du använder en lösenfras för
din hemliga nyckel om du inte är den enda med rootbehörighet på din dator.
Du kan använda ssh-agent(1)
och ssh-add(1)
för att
bara behöva skriva in din lösenfras en gång för varje nyckel under en
körning.
Du kan automatiskt läsa in alla dina nycklar i agenten genom att lägga till
följande rader i din ~/.xsession
-fil:
# om use-ssh-agent anges i /etc/X11/Xsession.options (vilket # är standard) behöver du bara den andra raden # eval ssh-agent ssh-add <filnamn-för-ssh-nyckeln>
Paketet ssh-askpass
måste installeras för att köra
ssh-add
utan någon ansluten terminal.