Vaikuttaa siltä, että ssh-add -K ~/.ssh/id_rsa
lataa avaimesi, mutta pyytää salasanaa joka kerta, kun käynnistät uudelleen.
Etsin ratkaisua, joka ei vaadi minun syöttävän avaimen salasanaa uudelleen kirjautumisten välillä.
Kommentit
Vastaa
OSX: ssä , alkuperäisellä ssh-add
-asiakkaalla on erityinen argumentti yksityisen avaimen salasanan tallentamiseksi OSX-avaimenperään, mikä tarkoittaa, että tavallinen kirjautumistunnuksesi avaa sen lukituksen käytettäväksi ssh: n kanssa. ja myöhemmin, sinun on myös määritettävä SSH käyttämään aina avaimenperää (katso vaihe 2 alla).
Vaihtoehtoisesti voit käyttää avainta ilman salasanaa, mutta jos haluat turvallisuuden, joka on varmasti hyväksyttävä tämä työnkulku.
Vaihe 1 – Tallenna avain avaimenperään
Tee vain kerran:
ssh-add -K ~/.ssh/[your-private-key]
Syötä avainsalasanasi, niin sinulta ei kysytä sitä uudelleen.
(Jos sinulla on OSX: n pre-Sierra-versio, olet valmis, vaihetta 2 ei vaadita.)
Vaihe 2 – Määritä SSH käyttämään aina avaimenperää
Vaikuttaa siltä, että OSX Sierra poisti kätevän avainten säilyttämisen kirjautumisten välillä, ja ssh-päivitys ei enää käytä avaimenperää oletusarvoisesti. Tämän vuoksi sinua pyydetään antamaan avaimen tunnuslause päivityksen jälkeen ja uudelleen jokaisen uudelleenkäynnistyksen jälkeen.
Ratkaisu on melko yksinkertainen, ja se on esitetty kohdassa tämä github-ketjun kommentti . Näin määritit sen:
-
Varmista, että olet suorittanut yllä olevan vaiheen 1 tallentaaksesi avaimen avaimenperään.
-
Jos et vielä ole, luo tiedosto
~/.ssh/config
. Toisin sanoen tee kotisi hakemistoon.ssh
tiedosto nimeltäconfig
. -
Lisää seuraavat rivit
.ssh/config
-tiedostoon :Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/id_rsa
Muuta
~/.ssh/id_rsa
yksityisen avaimesi todelliseksi tiedostonimeksi. Jos sinulla on muita yksityisiä avaimia~/.ssh
-hakemisto, lisää myös jokaiselle heilleIdentityFile
-rivi. Minulla on esimerkiksi yksi ylimääräinen rivi, joka lukeeIdentityFile ~/.ssh/id_ed25519
toiselle yksityiselle avaimelle.UseKeychain yes
on avainosa, joka käskee SSH: tä etsimään avainta OSX-avaimenperästäsi tunnuslause. -
Siinä kaikki! Kun seuraavan kerran lataat minkä tahansa ssh-yhteyden, se yrittää määrittämiäsi yksityisiä avaimia ja etsii niiden salasanan OSX-avaimenperässä. Salasanan kirjoittamista ei vaadita.
Kommentit
- @Poulsbo & @Abram – katso päivitykseni, Sierra muutti automaattista käyttäytymistä ja sinun on nyt suoritettava
ssh-add -A
manuaalisesti ladataksesi tallennetun avaimenperän. Joitakin edellä mainittuja mahdollisia ratkaisuja. - @trisweb Kiitos vinkistä. joshbuchea ' -sovellus
.ssh/config
-tiedoston muokkaamiseen näyttää lupaavalta! Katso github.com/lionheart/openradar-mirror/issues/… - Toimii hyvin!Minun piti käyttää
A
-lippuaK
-linkin lisäksi lisätäksesi avaimet avaimenperään ja rekisteröidä salasana se (ssh-add -AK ~/.ssh/[your-private-key]
). Kiitos! - Jopa usekeychain-vaihtoehdon kanssa, huomaan silti, että avainnippuni pudottaa .ssh / id_rsa-avaimen uudelleenkäynnistyksen yhteydessä.
- Tein täsmälleen saman ja Mac pudottaa edelleen avain uudelleenkäynnistyksen yhteydessä.
Vastaa
Minulla oli samanlainen ongelma, koska minulta kysyttiin joka kerta pub-key-salasanalleni. Yllä olevan käyttäjän ”trisweb” ehdotuksen mukaan otin nämä vaihtoehdot käyttöön ~/.ssh/config
:
Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/id_rsa
Mutta se kuitenkin kysyi aina, kun halusin käyttää ssh: tä. Lopulta otin käyttöön ssh -v
ja löysin tämän virheenkorjausrivin:
debug1: key_load_private: incorrect passphrase supplied to decrypt private key
Avasin avainnipun kohdassa Avaimenperä .app ”, löysi avaimen nimeltä” SSH: /Users/username/.ssh/id_rsa ”ja avasi sen. Napsauttamalla ”Näytä salasana” paljastan salasanan ja todellakin huomasin, että avaimenperän salasana oli vanha salasana. Päivitin salasanan Avainnipun käyttöoikeudessa ja nyt salasanavapaa toimii.
Olisin voinut päivittää salasanan myös tällä lauseella:
ssh-keygen -p -f ~/.ssh/id_rsa
Kommentit
- Mac-tietokoneellani salasana on tallennettu ”iCloud” -ketjun salasana-luokkaan. Luulin, että se oli ”sisäänkirjautumisketjussa”.
Vastaa
Kaikille, joissa yllä olevat eivät toimineet , ongelmani näyttää johtuvan siitä, että kopioin UseKeychain yes
& AddKeysToAgent yes
kaikissa ssh-avainprofiilit / pikavalinnat. Päivitin ~/.ssh/config
-tiedostoni ilmoittaakseni nämä vain kerran, ja nyt ne kaikki latautuvat sisäänkirjautumisen yhteydessä pyytämättä salasanoja käynnistyksen yhteydessä, esim .:
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
Kommentit
- Suosittelen, että
Host *
olisi tiettyjen isäntäsääntöjen mukainen. Katso lisätietoja kohdastaman ssh_config
.
Vastaa
Myös macOS Sierra ja HighSierra (älä tiedä edellisistä versioista), ssh-add -A
-ajon suorittaminen saa agentin lataamaan kaikki avaimet, joiden tunnuslauseet on tallennettu avaimenperään … Joten erittäin kätevä
Vastaa
Lisää julkinen avain kansioon:
.ssh/known_hosts
Julkinen avaimet ovat yleensä päällä:
/home/user/.ssh/id_rsa.pub
Toivo, joka auttaa
Kommentit
- Luulen tarkoittavan
authorized_keys
- joka tapauksessa, tämä ei toimi ', jos sinulla on enemmän kuin yksi avain!
id_rsa
-avaimessani on salasana.ssh-add
, vaan vain ajaassh
suoraan. Sinun pitäisi avautua ikkuna, joka toimii avaimen salasanana, ja valintaruudun avulla voit tallentaa sen avaimenperääsi.