Hvor skal min autoriserede_key-fil være, hvis jeg vil ssh til `localhost`?

Jeg har min offentlige / private nøgleopsætning, men jeg ved ikke, hvor den skal hen. Skal begge disse filer placeres i ~/.ssh/ for min bruger?

Svar

Den private nøgle forbliver hjemme. Den offentlige nøgle rejser:

  • Placer din private nøgle i ~/.ssh (lokal vært). Den vil normalt være ~/.ssh/id_rsa.
  • Placer din offentlige nøgle i ~/.ssh/authorized_keys (fjernhost).

Mens det første trin normalt udføres automatisk, når du opretter nøgle, det andet kan opnås gennem:

$ ssh-copy-id ~/.ssh/id_rsa.pub user@remotehost 

Hvis du har en tilbageværende konfiguration angående fjernværten, kan du komme ind i nogle problemer med dette (godkendelse mislykkes , eller “for mange godkendelsesfejl” ). For at slippe af med dette problem kan du tvinge ssh-copy-id til at bruge adgangskodegodkendelse med:

$ ssh-copy-id -o"PubkeyAuthentication no" ~/.ssh/id_rsa.pub user@remotehost 

Selvfølgelig, o Når dine nøgler er placeret korrekt, er der ikke mere behov for en adgangskode:

$ ssh user@remotehost 

Du vil muligvis også tilføje nogle SSH-konfigurationer i ~/.ssh/config for at gøre det endnu enklere:

Host [custom name for the remote machine] Hostname [remote hostname or IP] User [remote username] IdentityFile /home/[your local user]/.ssh/id_rsa 

Takket være dette kan du bare skrive følgende for at logge ind på den eksterne vært:

$ ssh [custom name for the remote machine] 

Rediger: hvis begge maskiner (lokale og eksterne) er de samme, kan du forenkle proceduren med:

$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 

Dette føjer din offentlige nøgle til authorized_keys -filen. Selvfølgelig er en anden måde at logge på som en anden på din lokale maskine at bruge:

$ su [another user] 

Dette sparer dig SSH-transaktionen, hvor du muligvis ikke har brug for det . Adgangskodeløs su kan konfigureres ved hjælp af sudo :

$ sudo -iu [another user] 

Kommentarer

  • Er dette det samme, hvis jeg vil ssh localhost?
  • @MrDuk I dette tilfælde er både den lokale og den eksterne ende den samme maskine. Derfor skal du have din offentlige nøgle inde i ~/.ssh/authorized_keys lokalt. Til dette kan du bare bruge cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys. Jeg redigerede mit svar.
  • Måske er tingene ændret siden dit svar, men jeg havde brug for at tilføje en -i til din første kommando, så hele kommandoen ser ud som $ ssh-copy-id -i ~/.ssh/id_rsa.pub user@remotehost.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *