Pertanyaan macOS terus meminta passphrase ssh saya sejak saya memperbarui ke Sierra


Dulu mengingat kata sandi, tapi sekarang menanyakannya kepada saya setiap kali.

Saya telah membaca bahwa saya perlu meregenerasi kunci publik dengan perintah ini, yang saya lakukan:

ssh-keygen -y -f id_rsa > id_rsa.pub

tapi itu tidak memperbaiki apa pun.

Bagaimana saya bisa membuat macOS mengingat kata sandi saya lagi?


500
2017-09-22 09:21


asal


Saya mengalami perilaku terkait: Sebelumnya, dialog gantungan kunci akan muncul untuk meminta kata sandi, sekarang saya hanya mendapatkan permintaan konsol SSH reguler. Beberapa pendaftaran program pembantu mungkin hilang. - Daniel B
Sudah bertahun-tahun sejak saya menghasilkan id_rsa saya dan saya tidak pernah menggunakan passphrase dan menggunakan ini untuk ssh ke banyak server. Apakah saya benar-benar memiliki kata sandi di atasnya, atau hanya saja menurut Sierra saya seharusnya? Perhatikan bahwa $ cat ~ / .ssh / id_rsa | head -2 ----- BEGIN RSA PRIVATE KEY ----- Proc-Type: 4, DICAMPURKAN - Joe Murray
duplikat dari apple.stackexchange.com/q/254468/62697 - Cœur
@erwan, Anda tampak aktif di sini. Apakah jawabannya di bawah ini memecahkan masalah Anda? - tedder42
Apakah ada jawaban yang memecahkan masalah Anda? Jika demikian, Anda harus mempertimbangkan untuk menerimanya. - Shafik Yaghmour


Jawaban:


Dalam versi terbaru macOS (10.12.2), ini mudah diperbaiki. Cukup edit saja ~/.ssh/config dan aktifkan UseKeychain pilihan:

Host *
    UseKeychain yes

Tidak perlu mengubah hal lain. Sekarang semuanya bekerja seperti dulu sebelum pembaruan terkini. Anda tidak perlu menambahkan kunci ssh-agent.


Edit: Anda mungkin masih perlu memasukkan kata sandi Anda sekali. Jika Anda tidak mengetahuinya, ikuti instruksi ini untuk mengungkapkannya.


985
2017-12-19 12:04



Ini benar-benar berhasil bagi saya. Semua yang ada di bawah tampak lebih rumit daripada perbaikan ini. - Br.Bill
Catatan, itu Host * blok harus (hampir) selalu ditempatkan di bagian bawah Anda ~/.ssh/config mengajukan. Kapan ssh mencari pengaturan yang digunakannya pertama nilai yang ditemukannya. Jadi, dengan menempatkan meletakkan blok wildcard pada akhirnya, itu bertindak sebagai satu set default; Anda dapat mengesampingkan pengaturan untuk host tertentu dengan menentukannya sebelumnya di file. - Molomby
Ini bekerja untuk saya juga tapi saya harus memasukkan kata sandi dengan benar sekali. Ada jawaban lain yang menjelaskan bagaimana Anda dapat melihat kata sandi jika Anda tidak mengingatnya. - FGreg
Jika file konfigurasi tidak ada, membuat satu dan menambahkan ini akan berfungsi juga. - wynshaft
Anda tidak membutuhkan Host * heading. Cukup tambahkan satu baris UseKeychain yes di bagian atas Anda .ssh/config jika Anda ingin ini berlaku untuk semua host. - sj26


Saya memiliki masalah yang sama. MacOS Sierra keychain terus meminta frasa sandi. Id_rsa Anda harus dienkripsi dengan frasa sandi untuk keamanan. Kemudian coba tambahkan ke keychain ssh-add -K ~/.ssh/id_rsa

Jika kunci Anda ada di folder lain ~/.ssh lalu gantilah dengan folder yang benar.

Gantungan Kunci sekarang tahu kunci ssh Anda dan semoga semua berfungsi sekarang (milik saya)


164
2017-09-23 12:53



Ini berfungsi tetapi tampaknya tidak berlanjut ketika saya me-restart komputer saya. Ada yang punya masalah yang sama? - joshua.paling
Yup, masalah yang sama di sini. @ joshua.paling - kingkool68
@ joshua.paling, kingkool68 - Apple telah menghapus kemampuan untuk mengingat kunci SSH Anda saat reboot agar sesuai dengan perilaku OpenSSH mainstream. Lihat pertanyaan ini untuk cara lain untuk mencapai fungsi yang sama: apple.stackexchange.com/questions/254468/… - Evan Pon
@EvanPon Tapi itu tidak akan berfungsi dengan kunci terenkripsi, kan? - Konrad Rudolph
@KonradRudolph ini bekerja untuk saya. Panggilan ssh-add dengan -A pilihan akan terlihat di keychain MacOS untuk kata sandi apa pun untuk identitas yang dipermasalahkan. Saya yakin ini akan meminta Anda jika kata sandi tidak ada di gantungan kunci. - Evan Pon


Ini memperbaiki masalah serupa saya:

/usr/bin/ssh-add -K

Ini menyimpan passphrase di keychain Anda.

Memperbarui (Terima kasih @EasyCo): Ini berfungsi tetapi tidak bertahan antara restart. Solusi @ jukka-suomela di halaman ini tidak bekerja di restart. Anda dapat menemukan jawabannya di sini:

https://superuser.com/a/1158050/234685


63
2017-10-09 14:39



Hanya ini yang berhasil. - cryptic0
Saya tidak perlu membuat .ssh / .config saat menggunakan solusi ini. - Shai
Ini berhasil bagi saya. Tidak perlu mengedit file host. Saya di Sierra. - cchiera
Ini bekerja untuk saya di Mac OS Sierra. - Dayron Gallardo
Seperti yang dinyatakan sebelumnya, ini bekerja tetapi tidak bertahan antara restart. Solusi @ jukka-suomela bekerja di seluruh restart. - EasyCo


Saya hanya harus memasukkan kata sandi yang benar sekali dan itu mulai bekerja. Masalahnya adalah saya tidak ingat kata sandi SSH asli saya, tetapi saya memulihkannya dengan mengikuti langkah-langkah ini dari Github:

  • Di Finder, cari aplikasi Akses Keychain.
  • Di Akses Gantungan Kunci, cari SSH.
  • Klik dua kali pada entri untuk kunci SSH Anda untuk membuka kotak dialog baru.
  • Dialog Akses Gantungan KunciDi sudut kiri bawah, pilih Tampilkan kata sandi.
  • Anda akan dimintai kata sandi administratif Anda. Ketikkan ke kotak dialog "Akses Penguncian".
  • Kata sandi Anda akan terungkap.

38
2017-10-29 17:16



Tidak berfungsi. Terminal masih mengatakan "kata sandi yang buruk" - Jayden Lawson


Tidak ada solusi di atas yang berhasil setelah menginstal Sierra over El Capitan pada MacBook Pro baru. Sierra oleh desain tidak menyimpan kunci SSH di gantungan kunci.

Dua solusi berhasil bagi saya. Salah satunya adalah menambahkan perintah ssh-add -A &> /dev/null ke ~ / .bash_profile. Setiap kali Anda membuka terminal, perintah ini akan dijalankan (the &> /dev/null bagian mengirim output dari perintah file / dev / null).

Solusi yang lebih rumit tapi agak licin adalah membuat plist dengan perintah yang dijalankan setiap kali OS di-boot seperti yang disarankan di Menyimpan kunci SSH di macOS Sierra keychain. Ini melibatkan menggunakan Xcode untuk membuat file.


18
2017-09-27 14:40



Ini tampaknya merupakan jawaban resmi Apple juga - lihat openradar.appspot.com/27348363 - Nick Maynard
Solusi terbaik sampai sekarang untuk saya. Saya menggunakan Mac OSX Sierra (10.12.2). - zyc


Satu perbaikan adalah dengan menambahkan hal berikut ke file ~ / .ssh / config Anda:

Host *
   AddKeysToAgent yes
   IdentityFile ~/.ssh/id_rsa
   UseKeychain yes

Diambil dari: https://www.reddit.com/r/osx/comments/52zn5r/difficulties_with_sshagent_in_macos_sierra/ Juga lihat: https://apple.stackexchange.com/a/264974/3810


13
2017-12-16 06:14



Sejauh ini, tidak ada jawaban, ada yang menyebutkan Bad configuration option: usekeychain kesalahan saya dapatkan dengan UseKeychain (namun itu dikapitalisasi). Tetapi saya adalah bisa membuatnya bekerja dengan menghapus hanya baris itu dan meninggalkan AddKeysToAgent dan IdentityFile (Anda masih harus memasukkan passphrase pertama kali). Ini dengan macOS Sierra 10.12.6. - William Turrell
ini berfungsi dengan baik ketika saya berada di terminal dan menggunakan perintah ssh, tetapi aplikasi lain, seperti WebStorm yang menggunakan terminal mereka sendiri, jangan mengambil konfigurasi sampai saya pertama kali menggunakan perintah ssh di terminal reguler. lalu berfungsi di mana saja, ada saran? - santiago arizti
@WilliamTurrell Jika ini masih terjadi, ketik which ssh untuk memastikan bahwa Anda menggunakan /usr/bin/ssh dan bukan versi dari Fink atau MacPorts, yang akan berada di bawah sesuatu seperti /usr/local/bin/ssh atau /opt/local/bin/ssh - Stefan Lasiewski


Pagi ini, saya memiliki masalah yang sama seperti Anda setelah memperbarui ke Sierra. Dalam kasus saya, itu id_rsa file dienkripsi dan setelah mendekripsi itu bekerja seperti pesona.

  1. Verifikasi apakah Anda id_rsa file dienkripsi dengan perintah berikut: cat ~/.ssh/id_rsa | head -2
  2. Jika baris kedua mengatakan Proc-Type: 4,ENCRYPTED, itu dienkripsi dan Anda bisa mencoba mendekripsinya
  3. Penting: buat cadangan dari dokumen asli Anda id_rsa mengajukan! Gunakan perintah cp ~/.ssh/id_rsa ~/.ssh/id_rsa.bak
  4. Dekripsi kunci pribadi Anda dengan openssl rsa -in ~/.ssh/id_rsa -out ~/.ssh/id_rsa.decrypted
  5. Hapus kunci asli (rm ~/.ssh/id_rsa) dan menggantinya dengan yang didekripsi: mv ~/.ssh/id_rsa.decrypted ~/.ssh/id_rsa

Setelah langkah-langkah ini, Anda harus bisa menggunakan ssh lagi.


7
2017-09-22 10:58



Meskipun itu adalah solusi, saya kira itu tidak benar memecahkan masalah OP. - Daniel B
Ini bekerja untuk saya. @DanielB, apa masalahnya dengan melakukan ini? - Dag Høidahl
@ DagHøidahl Kunci tidak akan lagi dienkripsi. Ini dapat dicuri dengan hak pengguna biasa, jadi enkripsi adalah SEHARUS yang kuat. - Daniel B
Ini menghapus kata sandi dari kunci, yang mengapa itu bekerja di sekitar masalah OP. Tapi saya merekomendasikan hal ini. Kata sandi adalah semua yang menghentikan orang menggunakan kunci Anda ketika dicuri. Karena kunci Anda mungkin akan memberikan akses ke beberapa sistem, Anda tidak ingin melemahkannya. - Martijn Heemels