it-swarm.dev

Jak mohu přidat SSH Keys do souboru autorizovaných klíčů?

Mám na serveru Amazon EC2 server Ubuntu, který používám pro vývoj, a dnes jsem hloupě vyčistil vše z mého ~/.ssh/authorized_keys soubor. Naštěstí mám otevřený SSH, takže jsem stále připojen a mohu soubor opravit, ale když se pokusím vrátit svůj klíčový soubor zpět, nefunguje to. Stále mám povolení odepřeno ze serveru na mém místním počítači.

authorized_keys má oprávnění 600. Zkoušel jsem připojit svůj klíč SSH pomocí ssh-rsa a nechat ssh-rsa vypnutý. Také jsem se pokusil udělat SSH klíč na jeden řádek, ale to také nefungovalo.

Je tu ještě něco, co musím udělat, jako znovu načíst soubor jak?

198
Dave Long

Měli byste nikdy uložit soubor s jeho obsahem počínaje -----BEGIN RSA PRIVATE KEY----- na serveru, to je váš soukromý klíč. Místo toho musíte vložit veřejný klíč do ~/.ssh/authorized_keys soubor.

Tento veřejný klíč má .pub rozšíření při generování pomocí ssh-keygen a jeho obsah začíná znakem ssh-rsa AAAAB3. (Binární formát je popsán v odpovědích tato otázka ).

Oprávnění uživatele ~/.ssh na serveru by mělo být 700. Soubor ~/.ssh/authorized_keys (na serveru) má mít režim 600. Oprávnění (soukromého) klíče na straně klienta by mělo být 600.

Pokud soukromý klíč nebyl chráněn heslem a vložíte jej na server, doporučujeme vygenerovat nový:

ssh-keygen -t rsa

Můžete to přeskočit, pokud jste si plně jisti, že nikdo nemůže obnovit smazaný soukromý klíč ze serveru.

Pokud to nepomůže, spusťte ssh s možnostmi pro větší výřečnost:

ssh -vvv [email protected]

Na straně serveru můžete zkontrolovat /var/log/auth.log pro detaily.

212
Lekensteyn

Alternativní způsob instalace veřejného klíče do authorized_keys Na vzdáleném počítači:

cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Některé výhody:

  • nevyžaduje instalaci ssh-copy-id .

  • zaručuje, že mkdir funguje před pokusem připojit id_rsa.pub k authorized_keys.

187
Marius Butuc

Pokud máte ověřování založené na přihlášení, použijte ssh-copy-id připojte veřejné klíče ke vzdálenému serveru.

ssh-copy-id [email protected]
135
Shoaib Nawaz
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
38
jjg

Nejjednodušší způsob je zkopírovat a vložit ...

První zobrazení/kopírování obsahu místního veřejného klíče id_rsa.pub včetně začátku "ssh-rsa", dokud neskončí vaší e-mailovou adresou:

cat ~/.ssh/id_rsa.pub

Poté upravte authorized_keys na server a vložte obsah své schránky pod jakékoli další klíče v tomto souboru:

nano ~/.ssh/authorized_keys

A uložte Ctl+O, opusťte soubor Ctl+X, ukončete relaci SSH exit a zkuste se přihlásit zpět a potvrďte, že funguje. Pokud to nepožádalo o heslo, fungovalo to.

17
ow3n

Získejte prostředí na vzdáleném počítači, kam chcete klíč umístit, a pak můžete spustit tuto jednostrannou linku a vytvořit potřebné soubory a adresáře, nastavit jejich oprávnění a připojit klíč k souboru. Samozřejmě musíte změnit část KEYGOESHERE níže a komentář za ní.

mkdir -p ~/.ssh && chmod 700 ~/.ssh && touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && echo "ssh-rsa KEYGOESHERE [email protected] or note" >> ~/.ssh/authorized_keys
6
Sarel Botha

Myslel jsem, že k tomu mohu přispět, protože se to konkrétně týká případů AWS a všechny odpovědi považují problém pouze za problém Linuxu, jako by to byl kus hardwaru. První věc, kterou musíte pochopit, je, že byste nikdy neměli zacházet s případy EC2 jako s hardwarem. To pro vás prostě vytvoří více práce. S nimi zacházejte jako s těkavými. To je největší překážka, kterou vidím lidi s AWS. Vytvořte AMI své instance a vložte novou klíčovou část, kterou potřebujete. cloud-init se o to postará za vás. Podrobněji vše, co musíte udělat, je použít správný veřejný klíč při vytváření nové instance z AMI originálu. Pokud, stejně jako v komentářích ke schválené odpovědi, chcete vygenerovat vlastní pár klíčů souborů pub a pem, AWS vám nabízí možnost nahrát své veřejné klíče pro použití v EC2.

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

5
einarc

Po uložení veřejného klíče byste měli soukromý klíč uložit do adresáře a souboru v počítači. A v sekci auth v ssh na PuTTY byste měli ukázat na soubor soukromých klíčů, který jste uložili na plochu. Bude to fungovat. Funguje to pro mě.

3
user273266

Zde je variace, podle níž můžete mít seznam názvů souborů veřejných klíčů v textovém souboru a velká dávka souborů veřejných klíčů je také ve stejném adresáři.

Tato varianta může být užitečná, pokud jste dali obrovský seznam souborů veřejných klíčů k importu :-)

$ for i in $(cat ListOfPubKeyFiles.txt) ; do cat $i | ssh [email protected] "cat >> ~/.ssh/authorized_keys"; done
1
jlmontes