Var ska min auktoriserade_key-fil vara om jag vill ssh till `localhost`?

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] 

Kommentarer

  • Är det samma om jag vill ssh localhost?
  • @MrDuk I det här fallet är både den lokala och fjärränden samma maskin. Därför måste du ha din offentliga nyckel i ~/.ssh/authorized_keys lokalt. För detta kan du bara använda cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys. Jag redigerade mitt svar.
  • Kanske har saker och ting förändrats sedan ditt svar men jag måste lägga till en -i till ditt första kommando, så att hela kommandot ser ut som $ ssh-copy-id -i ~/.ssh/id_rsa.pub user@remotehost.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *