Jag har min offentliga / privata nyckelinställning, men jag vet inte vart den ska gå. Ska båda filerna placeras i ~/.ssh/
för min användare?
Svar
Den privata nyckeln förblir hemma. Den offentliga nyckeln reser:
- Placera din privata nyckel i
~/.ssh
(lokal värd). Det är vanligtvis~/.ssh/id_rsa
. - Placera din offentliga nyckel i
~/.ssh/authorized_keys
(fjärrvärd).
Medan det första steget vanligtvis görs automatiskt när du skapar nyckel, den andra kan åstadkommas genom:
$ ssh-copy-id ~/.ssh/id_rsa.pub user@remotehost
Om du har någon kvarvarande konfiguration angående fjärrvärden kan du stöta på problem med detta (autentisering misslyckas , eller ”för många autentiseringsfel” ). För att bli av med detta problem kan du tvinga ssh-copy-id
att använda lösenordsautentisering med:
$ ssh-copy-id -o"PubkeyAuthentication no" ~/.ssh/id_rsa.pub user@remotehost
Naturligtvis, o När dina nycklar är korrekt placerade behöver du inte längre ett lösenord:
$ ssh user@remotehost
Du kanske också vill lägga till en SSH-konfiguration i ~/.ssh/config
för att göra det ännu enklare:
Host [custom name for the remote machine] Hostname [remote hostname or IP] User [remote username] IdentityFile /home/[your local user]/.ssh/id_rsa
Tack vare detta kan du bara skriva följande för att logga in på fjärrvärden:
$ ssh [custom name for the remote machine]
Redigera: om båda maskinerna (lokala och fjärrkontroller) är desamma kan du förenkla proceduren med:
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Detta lägger till din offentliga nyckel till authorized_keys
-filen. Naturligtvis är ett annat sätt att logga in som någon annan på din lokala maskin att använda:
$ su [another user]
Detta sparar SSH-transaktionen där du kanske inte behöver den . Lösenordsfritt su
kan ställas in med sudo
:
$ sudo -iu [another user]
ssh localhost
?~/.ssh/authorized_keys
lokalt. För detta kan du bara användacat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
. Jag redigerade mitt svar.-i
till ditt första kommando, så att hela kommandot ser ut som$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@remotehost
.