Kde by měl být můj soubor authorized_keys, pokud chci ssh na `localhost`?

Mám nastaven veřejný / soukromý klíč, ale nevím, kam by měl jít. Pokud by oba tyto soubory byly umístěny do ~/.ssh/ pro mého uživatele?

Odpověď

Soukromý klíč zůstane doma. Veřejný klíč cestuje:

  • Vložte svůj soukromý klíč do ~/.ssh (místního hostitele). Obvykle to bude ~/.ssh/id_rsa.
  • Vložte svůj veřejný klíč do ~/.ssh/authorized_keys (vzdáleného hostitele).

První krok se obvykle provádí automaticky, když vytvoříte klíč, druhého lze dosáhnout pomocí:

$ ssh-copy-id ~/.ssh/id_rsa.pub user@remotehost 

Pokud máte jakoukoli zbytkovou konfiguraci týkající se vzdáleného hostitele, můžete s tím narazit na nějaké potíže (autentizace selhává nebo „příliš mnoho selhání ověřování“ ). Chcete-li se tohoto problému zbavit, můžete vynutit ssh-copy-id použít ověřování pomocí hesla s:

$ ssh-copy-id -o"PubkeyAuthentication no" ~/.ssh/id_rsa.pub user@remotehost 

Samozřejmě, o Pokud jsou vaše klíče správně umístěny, není třeba heslo:

$ ssh user@remotehost 

Možná budete chtít přidat nějakou konfiguraci SSH do ~/.ssh/config aby to bylo ještě jednodušší:

Host [custom name for the remote machine] Hostname [remote hostname or IP] User [remote username] IdentityFile /home/[your local user]/.ssh/id_rsa 

Díky tomu stačí zadat následující pro přihlášení ke vzdálenému hostiteli:

$ ssh [custom name for the remote machine] 

Upravit: pokud jsou oba počítače (místní i vzdálené) stejné, můžete postup zjednodušit pomocí:

$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 

Tímto se připojí váš veřejný klíč k souboru authorized_keys. Samozřejmě dalším způsobem, jak se přihlásit jako někdo jiný na vašem místním počítači, je použít:

$ su [another user] 

Tím vám ušetříte transakci SSH tam, kde ji možná nebudete potřebovat . Bez hesla su lze nastavit pomocí sudo :

$ sudo -iu [another user] 

Komentáře

  • Je to stejné, pokud chci ssh localhost?
  • @MrDuk V tomto případě jsou místní i vzdálené konce stejný stroj. Proto musíte mít svůj veřejný klíč uvnitř ~/.ssh/authorized_keys místně. K tomu stačí použít cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys. Upravil jsem svou odpověď.
  • Možná se od vaší odpovědi věci změnily, ale do prvního příkazu jsem potřeboval přidat -i, aby celý příkaz vypadal $ ssh-copy-id -i ~/.ssh/id_rsa.pub user@remotehost.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *