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]
ssh localhost
?~/.ssh/authorized_keys
lokalt. Til dette kan du bare brugecat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
. Jeg redigerede mit svar.-i
til din første kommando, så hele kommandoen ser ud som$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@remotehost
.