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]
ssh localhost
?~/.ssh/authorized_keys
místně. K tomu stačí použítcat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
. Upravil jsem svou odpověď.-i
, aby celý příkaz vypadal$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@remotehost
.