Vraag Hoe voeg ik SSH Keys toe aan authorized_keys file?


Ik heb een Ubuntu-server op Amazon EC2, die ik gebruik voor ontwikkeling en vandaag heb ik domweg alles uit mijn ~/.ssh/authorized_keys het dossier. Gelukkig heb ik een SSH geopend, dus ik ben nog steeds verbonden en kan het bestand repareren, maar wanneer ik mijn sleutelbestand probeer terug te zetten, werkt het niet. Ik krijg nog steeds toestemming van de server geweigerd op mijn lokale computer.

authorized_keys heeft de permissies 600. Ik heb geprobeerd om mijn SSH-sleutel met ssh-rsa toe te voegen en de ssh-rsa uit te zetten. Ik heb ook geprobeerd de SSH-sleutel allemaal op één regel te maken, maar dat werkte ook niet.

Is er iets anders dat ik moet doen zoals het bestand herladen?


147
2018-06-01 16:02


oorsprong


Jaren later lijkt dit - nog steeds - relevant en actueel; wilde alleen maar een opmerking maken, praten over een kogel hebben ontweken: "Gelukkig heb ik een SSH open, dus ik ben nog steeds verbonden [..]" - sheesh! ; dP - Nostromov
Dit bericht, dat op mijn verjaardag werd bewerkt, heeft me twee maanden geleden op mijn verjaardag gered. - ytpillai


antwoorden:


Je zou moeten nooit sla het bestand op met de inhoud ervan beginnend met -----BEGIN RSA PRIVATE KEY----- op de server, dat is jouw privaat sleutel. In plaats daarvan moet u de openbaar sleutel in de ~/.ssh/authorized_keys het dossier.

Deze openbaar sleutel heeft de .pub extensie bij gebruik met ssh-keygen en de inhoud begint met ssh-rsa AAAAB3. (Het binaire formaat wordt beschreven in de antwoorden op deze vraag).

De machtigingen van ~/.ssh op de server zou 700 moeten zijn. Het bestand ~/.ssh/authorized_keys (op de server) hoort een modus van 600 te hebben. De rechten van de (private) sleutel aan de clientzijde moeten 600 zijn.

Als de privésleutel niet met een wachtwoord is beveiligd en u deze op de server hebt geplaatst, raad ik u aan een nieuwe te genereren:

ssh-keygen -t rsa

U kunt dit overslaan als u er zeker van bent dat niemand de verwijderde privésleutel van de server kan herstellen.

Als dit niet helpt, start dan ssh met opties voor meer breedsprakigheid:

ssh -vvv user@example.com

Aan de serverzijde kunt u beoordelen /var/log/auth.log voor details.


170
2018-06-01 16:29



Met Amazon EC2-servers krijg ik alleen de private key (key.pem). Ik heb nergens een publieke sleutel. - Dave Long
@Dave Long: u moet een nieuwe sleutel genereren met ssh-keygen -t rsa en zet de nieuw gecreëerde id_rsa.pub bestand in ~/.ssh/authorized_keys op uw server. Zie ook docs.amazonwebservices.com/AWSEC2/latest/UserGuide/... - Lekensteyn
@DaveLong: u kunt de openbare sleutel op elk gewenst moment vanuit de privésleutel genereren. U kunt dit eenvoudig doen met het volgende commando: ssh-keygen -y -f key.pem > key.pub - Morgan Blackthorne
@MorganBlackthorne Hoewel dat klopt, raad ik aan om uw privésleutels te genereren in plaats van deze te accepteren van externe bronnen. U kunt er niet volledig zeker van zijn dat de privésleutel niet is gelekt. - Lekensteyn
@Gerrat Fixed². - Lekensteyn


Een alternatieve manier om uw publieke sleutel in de externe machine's te installeren authorized_keys:

cat ~/.ssh/id_rsa.pub | ssh USER@HOST "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Enkele voordelen:

  • heeft niet nodig ssh-copy-id worden geïnstalleerd.

  • garandeert dat mkdir werkt voordat u probeert toe te voegen id_rsa.pub naar authorized_keys.


147
2018-02-27 19:31



Uw antwoord heeft mij geholpen om dit op meerdere externe machines te doen zonder extra pakketten, dank u. - nol
Dit garandeert niet dat de map "~ / .ssh" en het bestand "~ / .ssh / authorized_keys" met de juiste machtigingen worden aangemaakt. - Nick
@Nick, ik had dat probleem. Dus dan moet men misschien eerst eerst controleren op hun bestaan, als missen goed maken met chmod (700 / folder, 600 / file), en pas dan toevoegen? dus misschien kan het geen one liner zijn? - AnneTheAgile
@AnneTheAgile Ik denk dat het veranderen van de mkdir -p ~/.ssh deel van het antwoord gegeven door @MariusButuc aan umask 077 && mkdir -p ~/.ssh is alles wat u hoeft te doen om ervoor te zorgen dat het goed werkt. - Nick
ty @Nick! Ik zal het proberen. - AnneTheAgile


Als u op inloggen gebaseerde authenticatie heeft, gebruik dan ssh-copy-id om uw openbare sleutels toe te voegen aan de externe server.

ssh-copy-id user@host

115
2018-06-01 16:32



Dat lijkt geen geldige opdracht op Mac te zijn, wat mijn clientcomputer is. - Dave Long
Kan nuttig zijn phildawson.tumblr.com/post/484798267/ssh-copy-id-in-mac-os-x - Shoaib Nawaz
op OSX kunt u installeren met brouwsel: brew install ssh-copy-id - phil
In Macports kan dit commando worden geïnstalleerd met sudo port install openssh +ssh_copy_id. De +ssh_copy_id installeert openssh met de variant ssh_copy_id. - Stefan Lasiewski
Merk op dat de instructies op phildawson.tumblr.com u vragen om niet-vertrouwde software als root te installeren. Dit is behoorlijk gevaarlijk en een goede manier om gehackt te worden, tenzij je weet dat je de auteur kunt vertrouwen. - Stefan Lasiewski


local> scp .ssh/id_dsa.pub remote.com:
local> ssh remote.com
remote> cat id_dsa.pub >> .ssh/authorized_keys
remote> rm id_dsa.pub
remote> exit

32
2018-06-01 18:23





De eenvoudigste manier is kopiëren en plakken ...

Bekijk / kopieer eerst de inhoud van uw lokale openbare sleutel id_rsa.pub inclusief het begin "ssh-rsa" totdat het eindigt met je e-mailadres:

cat ~/.ssh/id_rsa.pub

Bewerk vervolgens authorized_keys op de server en plak de inhoud van uw klembord onder eventuele andere sleutels in dat bestand:

nano ~/.ssh/authorized_keys

En bespaar Ctl+O, verlaat het bestand Ctl+X, verlaat de SSH-sessie exit en probeer opnieuw in te loggen om te bevestigen dat het werkte. Als het niet om een ​​wachtwoord vroeg, werkte het.


7
2017-09-07 18:42





Na het opslaan van de openbare sleutel moet u de privésleutel opslaan in een map en bestand op uw pc. En in de auth-sectie van ssh op putty moet je wijzen naar het bestand met de privésleutel dat je op je bureaublad hebt opgeslagen. Het zal werken. Het werkt voor mij.


3
2018-04-23 19:59



Ik zou er gewoon dol op zijn als windows-console alle ssh-functionaliteit zou kunnen toevoegen aan zijn tolk - Dennis


Ik dacht dat ik hier een bijdrage aan kon leveren, omdat het specifiek gaat om AWS-instanties en alle antwoorden behandelen het probleem alleen als een Linux-probleem, alsof het een stukje hardware is. Allereerst moet u begrijpen dat u EC2-instanties nooit als hardware moet behandelen. Dat zal gewoon meer werk voor je creëren Behandel ze als vluchtig. Dat is de grootste horde die ik zie bij mensen met AWS. Maak een AMI van uw instantie en injecteer de sleutel die u nodig hebt in de nieuwe instantie. cloud-init zorgt ervoor voor u. In meer detail, alles wat u hoeft te doen is de juiste openbare sleutel gebruiken bij het maken van de nieuwe instantie uit de AMI van het origineel. Als u, net als in de opmerkingen van het goedgekeurde antwoord, uw eigen sleutelpaar pub- en pem-bestanden wilt genereren, biedt AWS u de mogelijkheid om uw openbare sleutels te uploaden voor gebruik in EC2.

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#how-to-generate-your-own-key-and-import-it-to-aws


3
2018-03-03 01:22