Dulu mengingat frasa sandi, tapi sekarang itu meminta saya setiap kali.
Saya telah membaca bahwa saya perlu membuat ulang 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 frasa sandi saya lagi?
ssh
mengaktifkan modul inizpretzorc
. Toh itu tidak perlu di macOS, dan jika diaktifkan, itu akan meminta Anda untuk frasa sandi Anda bahkan setelah Anda menambahkanUseKeychain
.ssh -v ...
untuk melihat apakah ada info debug yang berguna ...Jawaban:
Dalam versi terbaru dari macOS (10.12.2), ini mudah diperbaiki. Edit saja
~/.ssh/config
dan aktifkanUseKeychain
opsi:Tidak perlu mengubah apa pun. Sekarang semuanya berfungsi seperti dulu sebelum pembaruan terbaru. Anda tidak perlu menambahkan kunci
ssh-agent
.Sunting: Anda mungkin masih perlu memasukkan frasa sandi satu kali. Jika Anda tidak mengetahuinya, ikuti petunjuk ini untuk mengungkapkannya.
sumber
Host *
blok harus (hampir) selalu ditempatkan di bagian bawah~/.ssh/config
file Anda . Saatssh
mencari pengaturan, ia menggunakan nilai pertama yang ditemukannya. Dengan demikian, dengan meletakkan menempatkan blok wildcard di akhir, ia bertindak sebagai seperangkat default; Anda dapat mengesampingkan pengaturan untuk host tertentu dengan menentukannya lebih awal dalam file.Host *
tajuk. Cukup tambahkan satu barisUseKeychain yes
di bagian atas Anda.ssh/config
jika Anda ingin ini berlaku untuk semua host.Saya memiliki masalah yang sama. Gantungan kunci MacOS Sierra terus meminta kata sandi. Id_rsa Anda harus dienkripsi dengan frasa sandi untuk keamanan. Kemudian coba tambahkan ke gantungan kunci
ssh-add -K ~/.ssh/id_rsa
Jika kunci Anda ada di folder lain
~/.ssh
maka gantikan dengan folder yang benar.Gantungan kunci sekarang tahu kunci ssh Anda dan, semoga, semua berfungsi sekarang (milik saya)
sumber
ssh-add
dengan-A
opsi akan mencari di gantungan kunci MacOS untuk kata sandi apa pun untuk identitas yang dimaksud. Saya percaya ini akan meminta Anda jika kata sandi tidak ada di gantungan kunci.Ini memperbaiki masalah saya yang serupa:
Ini menyimpan frasa sandi di gantungan kunci Anda.
Pembaruan (terima kasih @EasyCo): Ini berfungsi tetapi tidak bertahan di antara restart. Solusi @ jukka-suomela pada halaman ini berfungsi di seluruh restart. Anda dapat menemukan jawabannya di sini:
https://superuser.com/a/1158050/234685
sumber
Saya hanya perlu memasukkan frasa sandi yang benar satu kali dan mulai berfungsi. Masalahnya adalah saya tidak ingat kata sandi SSH asli saya, tetapi saya memulihkannya dengan mengikuti langkah-langkah berikut dari Github:
sumber
Tidak ada solusi di atas yang berfungsi setelah memasang Sierra over El Capitan pada MacBook Pro baru. Sierra dengan desain tidak menyimpan kunci SSH di gantungan kunci.
Dua solusi berhasil untuk saya. Pertama adalah menambahkan perintah
ssh-add -A &> /dev/null
ke ~ / .bash_profile. Setiap kali Anda membuka terminal, perintah ini akan dieksekusi (&> /dev/null
bagian mengirimkan output dari perintah file / dev / null).Solusi yang lebih rumit tetapi sedikit lebih licin adalah membuat plist dengan perintah yang dijalankan setiap kali OS di-boot seperti yang disarankan dalam Menyimpan kunci SSH di gantungan kunci macOS Sierra . Ini melibatkan penggunaan Xcode untuk membuat file.
sumber
Salah satu perbaikannya adalah dengan menambahkan yang berikut ke file ~ / .ssh / config Anda:
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
sumber
Bad configuration option: usekeychain
kesalahan yang saya dapatkan dengan UseKeychain (namun huruf besar). Tapi saya adalah bisa mendapatkannya bekerja dengan menghapus hanya baris itu dan meninggalkan AddKeysToAgent dan IdentityFile (Anda masih harus memasukkan kata sandi pertama kalinya). Ini dengan macOS Sierra 10.12.6.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
Pagi ini, saya memiliki masalah yang sama dengan Anda setelah memperbarui ke Sierra. Dalam kasus saya,
id_rsa
file dienkripsi dan setelah mendekripsi itu berfungsi seperti pesona.id_rsa
file Anda dienkripsi dengan perintah berikut:cat ~/.ssh/id_rsa | head -2
Proc-Type: 4,ENCRYPTED
, itu terenkripsi dan Anda bisa mencoba mendekripsiid_rsa
file asli Anda ! Gunakan perintahcp ~/.ssh/id_rsa ~/.ssh/id_rsa.bak
openssl rsa -in ~/.ssh/id_rsa -out ~/.ssh/id_rsa.decrypted
rm ~/.ssh/id_rsa
) dan ganti dengan yang didekripsi:mv ~/.ssh/id_rsa.decrypted ~/.ssh/id_rsa
Setelah langkah-langkah ini, Anda harus dapat menggunakan ssh lagi.
sumber
Saya mencoba beberapa jawaban di sini, tetapi masih mengalami masalah dengan passing tombol jarak jauh (seperti ketika menggunakan capistrano). Untuk mengatasinya, saya membaca technote dari apple dan menjadikan ini file konfigurasi saya. Tidak perlu lagi meminta kata sandi saya!
https://developer.apple.com/library/content/technotes/tn2449/_index.html
sumber
Saya memiliki masalah ini juga ketika mencoba untuk menyebarkan beberapa kode menggunakan Capistrano . Sangat membuat frustrasi. Berikut adalah dua metode yang saya tahu untuk menangani masalah ini.
Metode 1: Tambahkan semua kunci yang dikenal ke agen SSH.
Jadi salah satu solusi yang saya temukan adalah menjalankan
ssh-add
dengan-A
opsi — yang menambahkan semua identitas yang dikenal ke agen SSH menggunakan frasa sandi apa pun yang disimpan dalam gantungan kunci Anda — seperti ini:Sekarang ini berfungsi tetapi tidak akan bertahan di seluruh reboot. Jadi, jika Anda tidak ingin khawatir tentang ini lagi, buka saja
~/.bash_profile
file pengguna Anda seperti ini:Dan tambahkan baris ini ke bawah:
Sekarang ketika Anda membuka jendela Terminal baru, semua pasti bagus!
Metode 2: Tambahkan hanya kunci SSH yang ada di gantungan kunci ke agen.
Jadi, sementara
ssh-add -A
opsi harus bekerja untuk sebagian besar kasus dasar, saya mengalami masalah baru-baru ini di mana saya memiliki 6-7 kotak Vagrant (yang menggunakan kunci / identitas SSH untuk akses) pengaturan pada mesin di atas yang lebih umumid_rsa.pub
di tempat.Singkatnya, saya akhirnya dikunci dari server jauh karena terlalu banyak percobaan gagal berdasarkan kunci / identitas SSH karena akses server didasarkan pada kata sandi dan kunci / identitas SSH adalah kunci / identitas SSH. Jadi agen SSH mencoba semua kunci SSH saya, gagal dan saya bahkan tidak bisa masuk ke prompt kata sandi.
Masalahnya adalah bahwa
ssh-add -A
hanya akan secara sewenang-wenang menambahkan setiap kunci SSH / identitas tunggal yang Anda miliki ke agen bahkan jika itu tidak perlu dilakukan; seperti dalam kasus kotak Vagrant.Solusi saya setelah banyak pengujian adalah sebagai berikut.
Pertama, jika Anda memiliki lebih banyak kunci / identitas SSH yang ditambahkan ke agen Anda daripada yang Anda butuhkan — seperti yang diperlihatkan
ssh-add -l
kemudian bersihkan semuanya dari agen seperti:Setelah itu selesai, kemudian mulai agen SSH sebagai proses latar belakang seperti:
Sekarang, ini jadi aneh dan saya tidak terlalu yakin mengapa. Dalam beberapa kasus, Anda dapat secara khusus menambahkan
~/.ssh/id_rsa.pub
kunci / identitas ke agen seperti:Ketikkan frasa sandi Anda, tekan Returndan Anda harus baik-baik saja.
Tetapi dalam kasus lain hanya menjalankan ini sudah cukup untuk mendapatkan kunci / identitas ditambahkan:
Jika itu berhasil, ketikkan
ssh-add -l
dan Anda akan melihat satu kunci SSH / identitas terdaftar.Semuanya bagus? Sekarang buka
.bash_profile
:Dan tambahkan baris ini ke bawah; komentar atau hapus
-A
versi jika Anda memilikinya:Itu akan memungkinkan kunci / identitas SSH untuk dimuat ulang ke agen SSH pada setiap startup / reboot.
PEMBARUAN: Apple sekarang telah menambahkan
UseKeychain
opsi ke opsi konfigurasi SSH terbuka dan mempertimbangkanssh-add -A
solusinya juga.Pada macOS Sierra 10.12.2, Apple (saya berasumsi) telah menambahkan
UseKeychain
opsi konfigurasi untuk konfigurasi SSH. Memeriksa halaman manual (viaman ssh_config
) menunjukkan info berikut:Yang bermuara pada Apple melihat solusi sebagai menambah
ssh-add -A
Anda.bash_profile
seperti yang dijelaskan dalam tiket Radar Terbuka ini atau menambahkanUseKeychain
sebagai salah satu opsi dalam per pengguna~/.ssh/config
.sumber
Jukka Suomela 's jawaban benar, tetapi jika Anda menggunakan
openssh
diinstal darihomebrew
, maka Anda juga perlu uninstall dengan:... untuk beralih kembali ke openssh default sistem, karena homebrew tidak mendukung
UseKeychain
entri konfigurasi ssh.sumber
Saya mencoba semua solusi yang disarankan di sini, tetapi saya tidak memasang gantungan kunci di Mac saya.
Menambahkan ke baris berikut di
.ssh/config
file teratas pada mesin lokal dan remote bekerja untuk saya.sumber
Anda memerlukan
.plist
file yang ditambahkan~/Library/LaunchAgents/
untuk dijalankanssh-add -A
pada setiap startup macOS.Ada satu perintah yang melakukan ini (dari SSH-keys-in-macOS-Sierra-keychain ) yaitu:
sumber