it-swarm.dev

Jak získám veřejný klíč ze soukromého klíče SSH?

Soukromý klíč SSH vygenerovaný programem ssh-keygen obsahuje část veřejného klíče. Jak získám tento veřejný klíč ze soukromého klíče? Ztratil jsem svůj veřejný klíč a je třeba vložit obsah tohoto veřejného klíče na servery authorized_keys a nechcete vytvořit nový pár klíčů.

Jinými slovy: jak vytvořím id_rsa.pub soubor z id_rsa soubor?

471
Lekensteyn

Našel jsem odpověď na serveru Chyba: Vytvořte veřejný klíč SSH ze soukromého klíče?

Možnost -y vydává veřejný klíč:

ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub

Jako vedlejší poznámka je komentář veřejného klíče ztracen. Měl jsem web, který vyžadoval komentář (Launchpad?), Takže je třeba upravit ~/.ssh/id_rsa.pub a připojte komentář k první řádce mezerou mezi komentářem a klíčovými daty. Příklad veřejného klíče je zobrazen zkrácen níže.

ssh-rsa AAAA..../VqDjtS5 [email protected]

U klíčů, které byly přidány do agenta SSH (program, který běží na pozadí a vyhýbá se opakovanému zadávání přístupového hesla klíčového souboru znovu a znovu), můžete použít ssh-add -L příkaz k výpisu veřejných klíčů pro klíče, které byly přidány agentovi (přes ssh-add -l). To je užitečné, když je klíč SSH uložen na čipové kartě (a přístup k souboru soukromého klíče není možný).

720
Lekensteyn

Toto je řešení speciálně pro uživatele, kteří používají Windows k SSH ke svým vzdáleným strojům, včetně cloudových obrázků na Amazonu AWS a GCE.

(Zřeknutí se odpovědnosti)

Nedávno jsem použil toto řešení pro vzdálené přihlášení k novým nasazeným VM obrázky na GCE.


Použité nástroje:

  1. puttygen
  2. WinSCP

Kroky k provedení:

  1. Generujte pár veřejného a soukromého klíče pomocí puttygen.
  2. Nahrajte veřejný klíč na server v cloudu nebo na vzdáleném místě.

Popis (jak na to):

  1. Vygenerujte klíč/pár nebo použijte existující soukromý klíč:

    Pokud máte soukromý klíč:

    Otevřete puttygen, stiskněte tlačítko Load a vyberte soubor vašeho soukromého klíče (* .pem).

    Pokud nemáte nemáte soukromý klíč:

    • Otevřít puttygen,
    • Vyberte požadovaný typ klíče SSH2 DSA (můžete použít RSA nebo DSA) v sekci Parametry ... a je důležité, abyste pole přístupové fráze nechali prázdné,
    • Stiskněte vygenerovat a postupujte podle pokynů pro vygenerování (veřejného/soukromého) páru klíčů.

    Sample Key Generation pic

  2. Vytvořte nový soubor 'autorizované_keys' (s poznámkovým blokem):

    Zkopírujte data veřejného klíče z části „Veřejný klíč pro vložení do souboru OpenSSH autorizovaných_keys“ v generátoru klíčů PuTTY a vložte data klíčů do souboru „autorizované klíče“.

    Ujistěte se, že v tomto souboru je pouze jeden řádek textu.

  3. Nahrajte klíč na server Linux:

    • Otevřete WinSCP,
    • Vyberte protokol SFTP a přihlaste se pomocí svých pověření SSH.
    • Po úspěchu uvidíte strukturu domovského adresáře na vzdáleném počítači.

    Nahrajte soubor autor_keys do domovského adresáře na vzdáleném počítači.

  4. Nastavte správná oprávnění:

    Vytvořte .ssh adresář (pokud neexistuje)

    Zkopírujte authorized_keys soubor do adresáře .ssh (nahradí všechny existující authorized_keys file; vezměte na vědomí toto).

    Pokud soubor existuje, jednoduše přidejte obsah tohoto souboru do existujícího souboru.

    Spusťte příkazy pro nastavení oprávnění:

    Sudo chmod 700 .ssh && chmod 600 .ssh/authorized_keys
    

Nyní budete moci ssh do vzdáleného počítače bez zadávání pověření pokaždé.

Další čtení:

  1. Vytváření a odesílání klíčů SSH ve Windows

  2. Ověření bez hesla pomocí klíče OpenSSH, certifikátů .pem a .pub

14
devprashant