it-swarm-eu.dev

Nejjednodušší způsob, jak zkopírovat ssh klíče do jiného počítače?

Jsem líný doma a používám ověřování pomocí hesla pro své domácí stroje. Jsem připraven přejít k autentizaci na základě klíče. Na webu je mnoho možností, jak to provést, včetně přesunu, přehození klíče přímo, oříznutí klíče přímo atd.

Hledám nejjednodušší a doporučený způsob, jak zkopírovat klíč, doufejme, že někde v balíčku Ubuntu ssh je nějaká výhodná obálka?

Už vím o jak vypnout přihlášení k hesl .

372
Jorge Castro

Příkaz ssh-copy-id (V balíčku openssh-client a nainstalovaný ve výchozím nastavení) provádí přesně toto:

ssh-copy-id [email protected]

zkopíruje veřejný klíč vaší výchozí identity (pro jiné identity použijte -i identity_file) do vzdáleného hostitele.

Výchozí identita je váš „standardní“ klíč ssh. Skládá se ze dvou souborů (veřejného a soukromého klíče) ve vašem adresáři ~/.ssh, Obvykle s názvem identity, id_rsa, id_dsa, id_ecdsa nebo id_ed25519 (a to samé s .pub), v závislosti na typu klíče. Pokud jste nevytvořili více než jeden klíč ssh, nemusíte si dělat starosti se zadáním identity, ssh-copy-id jej jednoduše vybere.

Pokud nemáte identitu, můžete ji vygenerovat pomocí nástroje ssh-keygen.

Pokud server používá port odlišný od výchozího (22), Měli byste tímto způsobem použít uvozovky ( zdroj ):

ssh-copy-id "[email protected] -p <port-number>"
502
Marcel Stimberg

Líbí se mi odpověď od Marcela. Tento příkaz jsem neznal. Vždy jsem používal to, co jsem našel na web Oracle :

cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'cat >> .ssh/authorized_keys && echo "Key copied"'

Přemýšlel jsem o tom, že to zveřejním zde, protože je to dobrá ukázka toho, čeho lze dosáhnout v Shellův kód s mocí ssh . Ale pomocí ssh-copy-id je definitivně bezpečnější způsob, jak to udělat správně!

Všimněte si, že pokud složka .ssh ještě neexistuje, výše uvedený příkaz selže. Kromě toho může být při vytváření souboru lepší nastavit minimální možná oprávnění (v zásadě pouze čtení a zápis pouze pro vlastníka). Zde je podrobnější příkaz:

cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'umask 0077; mkdir -p .ssh; cat >> .ssh/authorized_keys && echo "Key copied"'
138
Huygens

Grafická metoda

  1. Otevřít AplikaceHesla a klíčeMoje osobní klíče.
  2. Vyberte svůj klíč a poté klikněte na RemoteConfigure Key for Secure Shell.

Set Up Computer for SSH Connection

31
ændrük

Na Ubuntu můžete načíst klíče z Launchpadu:

ssh-import-id [launchpad account name]

Podrobnosti :

  1. Potřebujete účet Launchpad, takže přihlaste se nebo si vytvořte účet
  2. Po přihlášení klikněte na tlačítko vedle SSH klíče:
  3. Do tohoto pole vložte obsah souboru veřejného klíče (včetně komentáře). Takový klíč vypadá takto:

    ssh-rsa AAAAB3Nza .... UyDOFDqJp lekensteyn
    

    Tady, ssh-rsa označuje, že klíčem je klíč RSA, AAAAB3Nza .... UyDOFDqJp je skutečný klíč a lekensteyn je komentář.

  4. Uložte klíč stisknutím Importovat veřejný klíč
  5. Pokud se vše povedlo dobře, váš klíč by nyní měl být uveden pod SSH klíče:

Balík ssh-import-id musí být na stroji nainstalován, ke kterému je třeba přistupovat ze vzdáleného počítače. Tento balíček je nainstalován společně s programem openssh-server balíček, protože se jedná o doporučený balíček pro openssh-server. Po ověření, že ssh-import-id byl nainstalován Na klientském počítači spusťte:

ssh-import-id [launchpad account name]

Tím stáhnete veřejný klíč ze serverů Launchpad přes HTTPS, který vás chrání před útoky MITM.

V Ubuntu Lucid a dřívějších verzích můžete toho dosáhnout:

wget https://launchpad.net/~[lp acount name]/+sshkeys -O - >> ~/.ssh/authorized_keys && echo >> ~/.ssh/authorized_keys

Příkaz echo je potřebný k získání dalšího řádku za řádkem s klíčem SSH.

18
Lekensteyn

pro vlastní port

ssh-copy-id -i "[email protected] -p2222"

-i přepněte výchozí nastavení na ~/.ssh/id_rsa.pub, pokud chcete jiný klíč, vložte cestu klíče za -i

VAROVÁNÍ: Pokud jste nepsali -i, zkopírují se všechny vaše klíče nalezené v ~/.ssh

14
Omar S.

Řešení je velmi jednoduché:

Přestěhovat se ~/.ssh na nový stroj a spusťte ssh-add. HOTOVO!

DLOUHÁ ODPOVĚĎ:

  1. Ve starém počítači vezměte složku ~/.ssh na jednotku USB nebo do jakéhokoli jiného úložiště, které se vám líbí.
  2. Na novém počítači vložte složku pod ~ aka /home/$USER.
  3. Spustit ssh-add, na novém stroji hotovo.

P.S. Udělal to vícekrát. A já jsem překvapen příliš komplikovanými řešeními na vnitřním trhu, která obvykle nefungují.

2
Victor Timoftii

ssh-copy-id to přesně dělá. Nejsem si jistý, proč některé další odpovědi přidávají nepřesné informace. Nápověda ukazuje následující:

~$ ssh-copy-id -h
Usage: /usr/bin/ssh-copy-id [-h|-?|-f|-n] [-i [identity_file]] [-p port] [[-o <ssh -o options>] ...] [[email protected]]hostname
    -f: force mode -- copy keys without trying to check if they are already installed
    -n: dry run    -- no keys are actually copied
    -h|-?: print this help

Jen jsem vyzkoušel následující na klientovi Ubuntu 18.04 se serverem CentOS 7.6 a fungovalo to jako kouzlo. Příklad ukazuje použití vlastního portu 2222 a zadáním veřejného klíče na ~/.ssh/path-to-rsa.pub

$ ssh-copy-id -i ~/.ssh/path-to-rsa.pub -p 2222 [email protected]

Před spuštěním příkazu jsem použil -n na konci přepněte na suchý chod, který potvrdil, že příkaz bude fungovat tak, jak bylo zamýšleno. Jakmile jsem to potvrdil, spustil jsem příkaz znovu, jak je uvedeno výše, bez -n přepínač.

0
isapir

Pokud již máte hostitelský klíč jako v případě AWS EC2, udělejte to

cat ~/.ssh/id_rsa.pub | ssh -i hostkey.pem [email protected] 'cat >> .ssh/authorized_keys && echo "Key copied" '

Příště to jednoduše udělejte takto:

ssh [email protected]
0