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/config
soubor. Jinými slovy v adresáři.ssh
ve vašem domovském adresáři vytvořte soubor s názvemconfig
. -
Do tohoto
.ssh/config
souboru přidejte následující řádky :Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/id_rsa
Změňte
~/.ssh/id_rsa
na skutečný název vašeho soukromého klíče. Pokud máte v soukromém klíči jiné soukromé klíče~/.ssh
adresář, pro každý z nich také přidejte řádekIdentityFile
. Například mám jeden další řádek, který čteIdentityFile ~/.ssh/id_ed25519
pro druhý soukromý klíč.UseKeychain yes
je 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 -A
ruč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/config
vypadá slibně! Viz github.com/lionheart/openradar-mirror/issues/… - Funguje skvěle!V mém případě jsem potřeboval kromě příznaku
K
použítA
pří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_rsa
má heslo.ssh-add
, ale jen spustitssh
pří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.