Jeg har mitt offentlige / private nøkkeloppsett, men jeg vet ikke hvor det skal gå. Skulle begge disse filene plasseres i ~/.ssh/
for min bruker?
Svar
Den private nøkkelen blir hjemme. Den offentlige nøkkelen reiser:
- Plasser din private nøkkel i
~/.ssh
(lokal vert). Det vil vanligvis være~/.ssh/id_rsa
. - Plasser den offentlige nøkkelen i
~/.ssh/authorized_keys
(ekstern vert).
Mens det første trinnet vanligvis gjøres automatisk når du oppretter nøkkel, kan den andre oppnås gjennom:
$ ssh-copy-id ~/.ssh/id_rsa.pub user@remotehost
Hvis du har noen gjenværende konfigurasjon angående den eksterne verten, kan du få problemer med dette (godkjenning mislykkes , eller «for mange autentiseringsfeil» ). For å bli kvitt dette problemet, kan du tvinge ssh-copy-id
til å bruke passordgodkjenning med:
$ ssh-copy-id -o"PubkeyAuthentication no" ~/.ssh/id_rsa.pub user@remotehost
Selvfølgelig, o Når nøklene er riktig plassert, er det ikke lenger behov for passord:
$ ssh user@remotehost
Det kan også være lurt å legge til noen SSH-konfigurasjoner i ~/.ssh/config
for å gjøre det enda 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 å logge på den eksterne verten:
$ ssh [custom name for the remote machine]
Edit: Hvis begge maskinene (lokale og eksterne) er de samme, kan du forenkle prosedyren med:
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Dette vil legge den offentlige nøkkelen til authorized_keys
-filen. Selvfølgelig er en annen måte å logge på som noen andre på din lokale maskin å bruke:
$ su [another user]
Dette vil spare deg for SSH-transaksjonen der du kanskje ikke trenger den . Passordfritt su
kan konfigureres ved hjelp av sudo
:
$ sudo -iu [another user]
ssh localhost
?~/.ssh/authorized_keys
lokalt. For dette kan du bare brukecat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
. Jeg redigerte svaret mitt.-i
til din første kommando, slik at hele kommandoen ser ut som$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@remotehost
.