Takhle jsem to udělal.
- Vygenerujte klíč na hostitelském serveru. Pomocí níže uvedeného příkazu.
*ssh-keyscan -t rsa celý-název-serveru
- Nyní zkopírujte zvýrazněnou část (na obrázku) a připojte tento klíč k souboru „known_host“ na zdrojovém serveru. Umístění tohoto souboru se samozřejmě může v různých prostředích lišit.
Před několika dny jsem odpověděl na téměř podobnou odpověď na SuperUser. Důležité části:
- Formát se liší
- Na každém serveru jsou různé hostitelské klíče (typy) (ujistěte se, že jste vložili ten, který se skutečně používá)
- Je zde
ssh-keyscan
který může vytvořit formát za vás
V opačném případě stačí před váš klíč zadat IP adresu serveru (můžete přidat i název hostitele, za čárku), odstranit komentář z konce řádku a je to v pořádku. Formát pak vypadá takto:
11.22.33.44 ssh-rsa AADGD...
A ještě jedna poznámka, pokud používáte HashKnownHosts yes
(Debian a Ubuntu ano), musíte svůj known_hosts
znovu zahašovat jako například:
ssh-keygen -Hf ~/.ssh/known_hosts
Když jsem právě narazil na tento problém, přistoupil jsem k němu následovně:
Postupem času kopírování souborů mechanicky přes
ssh-keyscan server-name >> ~/.ssh/known_hosts
mi dal duplicitní položky v .ssh/known_hosts.
Jiné ruční metody vyžadovaly, abych vytvořil .ssh
adresář ještě neexistoval atd.
Rozhodl jsem se nechat ssh
zvládnout to:
ssh -o StrictHostKeyChecking=no server-name ls
-o StrictHostKeyChecking=no
možnost automaticky odpoví 'ano' na
The authenticity of host 'server-name (12.345.678.900)' can't be established.
RSA key fingerprint is XXXXXXX.
Are you sure you want to continue connecting (yes/no)?
(sem vložte všechna bezpečnostní upozornění týkající se náhodného připojení k počítačům, které neznáte).
ls
příkaz je pouze příkaz fluff, který se po dokončení provede a vynutí odpojení SSH. Můžete jej změnit na libovolný příkaz fluff, který se vám líbí.
ssh se postará o vytvoření .ssh
dir (v případě potřeby), přidání pouze jedné kopie klíče atd.
Platforma:macOS 10.14