Den ultimative guide til SSH - Opsætning af SSH-nøgler

Velkommen til vores ultimative guide til opsætning af SSH-nøgler (Secure Shell). Denne vejledning vil lede dig gennem det grundlæggende ved oprettelse af SSH-nøgler, og også hvordan man styrer flere nøgler og nøglepar.

Opret et nyt SSH-nøglepar

Åbn en terminal, og kør følgende kommando:

ssh-keygen

Du vil se følgende tekst:

Generating public/private rsa key pair. Enter file in which to save the key (/home/username/.ssh/id_rsa):

Tryk på enter for at gemme dine taster i standardmappen /home/username/.ssh.

Derefter bliver du bedt om at indtaste en adgangskode:

Enter passphrase (empty for no passphrase):

Det anbefales at indtaste en adgangskode her for et ekstra lag af sikkerhed. Ved at indstille en adgangskode kan du forhindre uautoriseret adgang til dine servere og konti, hvis nogen nogensinde får fat i din private SSH-nøgle eller din maskine.

Når du har indtastet og bekræftet din adgangskode, ser du følgende:

Your identification has been saved in /home/username/.ssh/id_rsa. Your public key has been saved in /home/username/.ssh/id_rsa.pub. The key fingerprint is: SHA256:/qRoWhRcIBTw0D4KpTUyK6YepyL6RQ2CQrtWsaicCb4 [email protected] The key's randomart image is: +---[RSA 2048]----+ | .o=+.... | |+.*o+o . | |+X.=o o | |@.=.oo . | |=O ...o S | |o.oo . . | |.E+ . . . . | |oo . ... + | |=.. .o. . . | +----[SHA256]-----+

Du har nu et offentligt og privat SSH-nøglepar, du kan bruge til at få adgang til eksterne servere og til at håndtere godkendelse af kommandolinjeprogrammer som Git.

Administrer flere SSH-nøgler

Selvom det betragtes som god praksis at kun have et offentligt-privat nøglepar pr. Enhed, skal du nogle gange bruge flere nøgler, ellers har du uortodokse nøglenavne. For eksempel bruger du muligvis et SSH-nøglepar til at arbejde på din virksomheds interne projekter, men du bruger muligvis en anden nøgle til at få adgang til en klients servere. Derudover bruger du muligvis et andet nøglepar til at få adgang til din egen private server.

Administration af SSH-nøgler kan blive besværlige, så snart du har brug for en anden nøgle. Traditionelt bruger du ssh-addtil at gemme dine nøgler til ssh-agentog indtaste adgangskoden til hver nøgle. Problemet er, at du bliver nødt til at gøre dette hver gang du genstarter din computer, hvilket hurtigt kan blive kedeligt.

En bedre løsning er at automatisere tilføjelse af nøgler, gemme adgangskoder og at specificere, hvilken nøgle der skal bruges, når du får adgang til bestemte servere.

SSH config

Indtast SSH config, som er en konfigurationsfil pr. Bruger til SSH-kommunikation. Opret en ny fil: ~/.ssh/configog åbn den til redigering:

nano ~/.ssh/config

Administration af brugerdefineret navngivet SSH-nøgle

Den første ting, vi skal løse ved hjælp af denne configfil, er at undgå at skulle tilføje brugerdefinerede navngivne SSH-nøgler ved hjælp af ssh-add. Forudsat at din private SSH-nøgle er navngivet ~/.ssh/id_rsa, skal du føje følgende til configfilen:

Host github.com HostName github.com User git IdentityFile ~/.ssh/id_rsa IdentitiesOnly yes

Dernæst skal du sørge for, at den ~/.ssh/id_rsaikke er i, ssh-agentved at åbne en anden terminal og køre følgende kommando:

ssh-add -D

Denne kommando fjerner alle nøgler fra den aktuelt aktive ssh-agentsession.

Hvis du nu prøver at lukke et GitHub-lager, bruger din configfil nøglen på ~/.ssh/ida_rsa.

Her er nogle andre nyttige konfigurationseksempler:

Host bitbucket-corporate HostName bitbucket.org User git IdentityFile ~/.ssh/id_rsa_corp IdentitiesOnly yes

Nu kan du bruge git clone [email protected]:company/project.git

Host bitbucket-personal HostName bitbucket.org User git IdentityFile ~/.ssh/id_rsa_personal IdentitiesOnly yes

Nu kan du bruge git clone [email protected]:username/other-pi-project.git

Host myserver HostName ssh.username.com Port 1111 IdentityFile ~/.ssh/id_rsa_personal IdentitiesOnly yes User username IdentitiesOnly yes

Nu kan du SSH ind på din server ved hjælp af ssh myserver. Du behøver ikke længere at indtaste en port og et brugernavn, hver gang du SSH på din private server.

Adgangskodeadministration

The last piece of the puzzle is managing passwords. It can get very tedious entering a password every time you initialize an SSH connection. To get around this, we can use the password management software that comes with macOS and various Linux distributions.

For this tutorial we will use macOS's Keychain Access program. Start by adding your key to the Keychain Access by passing -K option to the ssh-add command:

ssh-add -K ~/.ssh/id_rsa_whatever

Now you can see your SSH key in Keychain Access:

Adgang til nøglering

But if you remove the keys from ssh-agent with ssh-add -D or restart your computer, you will be prompted for password again when you try to use SSH. Turns out there's one more hoop to jump through. Open your SSH config file by running nano ~/.ssh/config and add the following:

Host * AddKeysToAgent yes UseKeychain yes

Med det, når du kører ssh, vil det lede efter nøgler i nøgleringadgang. Hvis den finder en, bliver du ikke længere bedt om en adgangskode. Taster føjes også automatisk til ssh-agenthver gang du genstarter din maskine.

Nu hvor du kender det grundlæggende ved at oprette nye SSH-nøgler og administrere flere nøgler, skal du gå ud og sshmed dit hjertes indhold!