Zdá se, že ssh-add -K ~/.ssh/id_rsa načte váš klíč, ale při každém restartu bude vyžadovat heslo.
Hledám řešení, které by nevyžadovalo, abych mezi přihlašovacími údaji znovu zadával klíčové heslo.
Komentáře
Odpověď
V OSX , nativní ssh-add klient má speciální argument pro uložení přístupové fráze soukromého klíče do klíčenky OSX, což znamená, že vaše běžné přihlášení jej odemkne pro použití s ssh. Na OSX Sierra a později musíte také nakonfigurovat SSH, aby vždy používalo klíčenku (viz krok 2 níže).
Alternativně můžete použít klíč bez přístupové fráze, ale pokud dáváte přednost zabezpečení, které je určitě přijatelné pro tento pracovní postup.
Krok 1 – Uložení klíče do klíčenky
Stačí to udělat jednou:
ssh-add -K ~/.ssh/[your-private-key]
Zadejte svou klíčovou přístupovou frázi a již vás o ni nebude požádáno.
(Pokud používáte předsierrovskou verzi OSX, jste hotovi, krok 2 není vyžadován.)
Krok 2 – Konfigurace SSH tak, aby vždy používala klíčenku
Zdá se, že OSX Sierra odstranila pohodlné chování přetrvávajících klíčů mezi přihlašovacími údaji a aktualizací na ssh již klíčenka ve výchozím nastavení nepoužívá. Z tohoto důvodu budete po upgradu a znovu po každém restartu vyzváni k zadání přístupové fráze pro klíč.
Řešení je poměrně jednoduché a je uvedeno v tento komentář vlákna github . Takto to nastavíte:
-
Ujistěte se, že jste dokončili výše uvedený krok 1, abyste klíč uložili do klíčenky.
-
Pokud ještě nemáte, vytvořte
~/.ssh/configsoubor. Jinými slovy v adresáři.sshve vašem domovském adresáři vytvořte soubor s názvemconfig. -
Do tohoto
.ssh/configsouboru přidejte následující řádky :Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/id_rsaZměňte
~/.ssh/id_rsana skutečný název vašeho soukromého klíče. Pokud máte v soukromém klíči jiné soukromé klíče~/.sshadresář, pro každý z nich také přidejte řádekIdentityFile. Například mám jeden další řádek, který čteIdentityFile ~/.ssh/id_ed25519pro druhý soukromý klíč.UseKeychain yesje klíčová část, která říká SSH, aby hledal klíč ve vaší klíčence OSX přístupové heslo. -
To je vše! Až příště načtete jakékoli připojení ssh, vyzkouší soukromé klíče, které jste zadali, a vyhledá jejich přístupovou frázi v klíčence OSX. Není nutné zadávat žádné heslo.
Komentáře
- @Poulsbo & @Abram – viz moje aktualizace, Sierra změnila automatické chování a nyní musíte spustit
ssh-add -Aručně načtěte uloženou klíčenku. Některá možná řešení jsou uvedena výše. - @trisweb Děkujeme za tip. joshbuchea ' s řešení úpravy
.ssh/configvypadá slibně! Viz github.com/lionheart/openradar-mirror/issues/… - Funguje skvěle!V mém případě jsem potřeboval kromě příznaku
KpoužítApříznak, abych přidal své klíče do klíčenky a zaregistroval přístupovou frázi do it (ssh-add -AK ~/.ssh/[your-private-key]). Díky! - I s možností usekeychain stále zjišťuji, že moje klíčenka při restartu zruší klíč .ssh / id_rsa.
- Udělal jsem přesně to samé a můj Mac stále upustil klíč při restartu.
Odpověď
Měl jsem podobný problém, protože jsem byl požádán pokaždé pro moji přístupovou frázi pro klíč od hospody. Na výše uvedený návrh uživatele „trisweb“ jsem zapnul tyto možnosti na ~/.ssh/config:
Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/id_rsa
Ale stále to vyvolalo pokaždé, když jsem chtěl použít ssh. Nakonec jsem zapnul ssh -v a našel jsem tento ladicí řádek:
debug1: key_load_private: incorrect passphrase supplied to decrypt private key
Poté jsem otevřel klíčenku v „Keychain Access“ .app „, našel klíč s názvem“ SSH: /Users/username/.ssh/id_rsa „a otevřel jej. Kliknutím na „Zobrazit heslo“ jsem heslo prozradil a skutečně jsem zjistil, že přístupová fráze v klíčence byla stará přístupová fráze. Aktualizoval jsem přístupovou frázi v Keychain Access a nyní funguje bez hesla.
Mohl jsem také aktualizovat přístupovou frázi pomocí této fráze:
ssh-keygen -p -f ~/.ssh/id_rsa
Komentáře
- V mém počítači Mac je heslo uloženo v kategorii „heslo“ řetězce „iCloud“. Myslel jsem, že je to v řetězci „přihlášení“.
Odpověď
Všem, kde výše uvedené nefungovalo , zdá se, že můj problém byl, protože jsem duplikoval celkem UseKeychain yes & AddKeysToAgent yes profily / klávesové zkratky ssh. Aktualizoval jsem svůj ~/.ssh/config soubor, abych je deklaroval pouze jednou a všechny se nyní načtou při přihlášení bez výzvy k zadání hesla při spuštění, např .:
Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/foo IdentityFile ~/.ssh/bar Host foo HostName foo.com User fooUser IdentityFile ~/.ssh/foo Host bar HostName bar.com User barUser IdentityFile ~/.ssh/bar
Komentáře
- Doporučuji
Host *dodržovat konkrétní pravidla hostitele. Podrobnosti vizman ssh_config.
Odpověď
Také v macOS Sierra a HighSierra (nevíte o předchozích verzích), spuštění ssh-add -A přiměje agenta načíst všechny klíče, jejichž přístupové fráze jsou uloženy na klíčence … Takže velmi užitečné
Odpověď
Přidejte veřejný klíč do:
.ssh/known_hosts
Veřejný klíč je obvykle zapnutý:
/home/user/.ssh/id_rsa.pub
Doufám, že to pomůže
Komentáře
- Myslím, že tím
authorized_keys - to každopádně nefunguje ' pokud máte více než jeden klíč!
id_rsamá heslo.ssh-add, ale jen spustitsshpřímo. Mělo by se zobrazit okno, které se zobrazí jako přístupová fráze pro klíč, a se zaškrtávacím políčkem, které vám umožní uložit jej do klíčenky.