Bisakah Anda mengatakan lebih banyak tentang kapan kata sandi muncul untuk Anda? Saya bertanya karena saya memiliki kunci ssh untuk server jarak jauh, yang saya jamin tidak sama dengan kata sandi login Mac saya atau apa pun, dan saya tidak harus memasukkan kata sandi untuk kunci ssh selama bertahun - tahun . Saya hanya bisa membuka terminal, ketik "ssh <server>", dan saya di sana. Saya pikir saya pertama kali mengatur kunci ini di bawah OSX 10.5. id_dsa, tapi saya pikir itu tidak masalah.
Michael H.
id_rsaKunci saya memiliki kata sandi di atasnya.
sorin
Saya juga memiliki masalah yang saya pecahkan sejak lama sehingga saya tidak ingat persis apa yang saya lakukan. Tapi saya pikir idenya adalah untuk tidak berlari ssh-add, tetapi jalankan saja sshsecara langsung. Anda akan mendapatkan jendela yang muncul sebagai frase pass untuk kunci tersebut, dan dengan kotak centang untuk membiarkan Anda menyimpannya di gantungan kunci Anda.
Harald Hanche-Olsen
1
@Sorin - begitu juga milikku! Saya harus memasukkannya sekali, dulu sekali, dan sejak itu Mac telah menyimpannya untuk saya. Semoga saran Harald akan membantu.
Michael H.
Apakah maksud Anda kata sandi Keychain (yaitu kata sandi login Anda) atau frasa sandi kunci? Jika itu yang terakhir, apakah frasa sandi Anda pasti tersimpan di Gantungan Kunci? Anda dapat memeriksa ini dengan membuka Akses Rantai Kunci dan mencarinya di gantungan kunci masuk.
Mathew Hall
Jawaban:
687
Pada OSX, ssh-addklien asli memiliki argumen khusus untuk menyimpan frasa sandi kunci pribadi di gantungan kunci OSX, yang berarti bahwa login normal Anda akan membuka kunci untuk digunakan dengan ssh. Pada OSX Sierra dan yang lebih baru, Anda juga harus mengonfigurasi SSH untuk selalu menggunakan gantungan kunci (lihat Langkah 2 di bawah).
Atau Anda dapat menggunakan kunci tanpa frasa sandi, tetapi jika Anda lebih suka keamanan yang tentu dapat diterima dengan alur kerja ini.
Langkah 1 - Simpan kunci di gantungan kunci
Lakukan ini sekali saja:
ssh-add -K ~/.ssh/[your-private-key]
Masukkan frasa sandi utama Anda, dan Anda tidak akan diminta lagi.
(Jika Anda menggunakan OSX versi pra-Sierra, Anda sudah selesai, Langkah 2 tidak diperlukan.)
Langkah 2 - Konfigurasikan SSH untuk selalu menggunakan gantungan kunci
Tampaknya OSX Sierra menghapus perilaku nyaman menahan tombol Anda di antara login, dan pembaruan ke ssh tidak lagi menggunakan gantungan kunci secara default. Karena itu, Anda akan diminta memasukkan kata sandi untuk kunci setelah Anda memutakhirkan, dan lagi setelah setiap restart.
Solusinya cukup sederhana, dan diuraikan dalam komentar thread github ini . Begini cara Anda mengaturnya:
Pastikan Anda telah menyelesaikan Langkah 1 di atas untuk menyimpan kunci di gantungan kunci.
Jika Anda belum melakukannya, buat ~/.ssh/configfile. Dengan kata lain, dalam .sshdirektori di direktori home Anda, buat file bernama config.
Dalam .ssh/configfile itu, tambahkan baris berikut:
Ubah ~/.ssh/id_rsake nama file aktual kunci pribadi Anda. Jika Anda memiliki kunci pribadi lainnya di ~.sshdirektori Anda , tambahkan juga satu IdentityFilebaris untuk masing-masingnya. Misalnya, saya memiliki satu baris tambahan yang bertuliskan IdentityFile ~/.ssh/id_ed25519kunci pribadi kedua.
Ini UseKeychain yesadalah bagian kunci, yang memberitahu SSH untuk mencari di gantungan kunci OSX Anda untuk frasa sandi utama.
Itu dia! Lain kali Anda memuat koneksi ssh, itu akan mencoba kunci pribadi yang Anda tentukan, dan itu akan mencari frasa sandi mereka di gantungan kunci OSX. Tidak perlu mengetik kata sandi.
Ini hampir berhasil untuk saya. Gantungan kunci "login" saya sudah dinonaktifkan secara otomatis, jadi jawaban Matthew Sanabria tidak berlaku. Menggunakan ssh-add -K ...menambahkan kunci ke agen ssh tanpa meminta kata sandi, tetapi hanya untuk sesi saat ini. Setelah reboot, saya harus menerbitkan ulang perintah.
Poulsbo
4
@Poulsbo & @Abram - lihat pembaruan saya, Sierra mengubah perilaku otomatis dan sekarang Anda harus menjalankannya ssh-add -Asecara manual untuk memuat gantungan kunci yang disimpan. Beberapa kemungkinan solusi yang dirujuk di atas.
@ atau lihat jawaban yang diperbarui, dan beri tahu saya jika Anda memiliki umpan balik. Terima kasih!
trisweb
9
Bagus sekali! Dalam kasus saya, saya perlu menggunakan Abendera di samping bendera Kuntuk menambahkan kunci saya ke gantungan kunci dan mendaftarkan frasa sandi ke dalamnya ( ssh-add -AK ~/.ssh/[your-private-key]). Terima kasih!
youssman
22
Saya memiliki masalah yang sama, karena saya diminta SETIAP SAAT untuk frasa sandi kunci pub saya.
Per saran pengguna "trisweb" di atas, saya mengaktifkan opsi ini ke ~ / .ssh / config:
Anda diminta kata sandi setiap kali karena gantungan kunci "login" Anda dikunci setelah tidak aktif dan / atau tidur atau dalam kasus Anda reboot. Ada dua cara untuk menyelesaikan ini untuk Anda.
Ubah pengaturan untuk gantungan kunci "login" Anda. Dengan asumsi kunci ssh Anda disimpan di gantungan kunci "login".
Buka Akses Keychain
Sorot gantungan kunci "login"
Klik kanan atau klik-opsi gantungan kunci "login"
Hapus centang pada kotak "Kunci setelah X menit tidak aktif" dan "Kunci saat tidur".
Hasilkan kunci SSH lain tanpa menggunakan kata sandi.
Perhatikan bahwa ketika memohon ssh-adddari dalam SSH, security unlock-keychainharus dipanggil terlebih dahulu. Juga, saya tidak perlu membuat direktori untuk -fparameter. Sayangnya, saya masih harus memanggil security unlocl-keychainsesi SSH untuk mengakses Keychain login, yang meminta kata sandi setiap kali ...
Ohad Schneider
2
Intinya adalah memiliki frasa sandi pada kunci. Saya ragu bahwa membuat kunci SSH baru bermanfaat untuk pertanyaan itu.
Gray
7
Juga, di macOS Sierra dan HighSierra (tidak tahu tentang versi sebelumnya), menjalankan ssh-add -Aakan membuat agen memuat semua kunci yang frasa sandi disimpan pada Keychain ... Sangat berguna
Untuk semua yang tidak berfungsi di atas, masalah saya tampaknya karena saya menduplikasi UseKeychain yes& AddKeysToAgent yesdi semua profil / pintasan kunci ssh. Saya memperbarui ~/.ssh/configfile saya untuk mendeklarasikan ini hanya sekali dan sekarang semuanya memuat saat login tanpa meminta kata sandi saat startup, misalnya:
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
id_rsa
Kunci saya memiliki kata sandi di atasnya.ssh-add
, tetapi jalankan sajassh
secara langsung. Anda akan mendapatkan jendela yang muncul sebagai frase pass untuk kunci tersebut, dan dengan kotak centang untuk membiarkan Anda menyimpannya di gantungan kunci Anda.Jawaban:
Pada OSX,
ssh-add
klien asli memiliki argumen khusus untuk menyimpan frasa sandi kunci pribadi di gantungan kunci OSX, yang berarti bahwa login normal Anda akan membuka kunci untuk digunakan dengan ssh. Pada OSX Sierra dan yang lebih baru, Anda juga harus mengonfigurasi SSH untuk selalu menggunakan gantungan kunci (lihat Langkah 2 di bawah).Atau Anda dapat menggunakan kunci tanpa frasa sandi, tetapi jika Anda lebih suka keamanan yang tentu dapat diterima dengan alur kerja ini.
Langkah 1 - Simpan kunci di gantungan kunci
Lakukan ini sekali saja:
Masukkan frasa sandi utama Anda, dan Anda tidak akan diminta lagi.
(Jika Anda menggunakan OSX versi pra-Sierra, Anda sudah selesai, Langkah 2 tidak diperlukan.)
Langkah 2 - Konfigurasikan SSH untuk selalu menggunakan gantungan kunci
Tampaknya OSX Sierra menghapus perilaku nyaman menahan tombol Anda di antara login, dan pembaruan ke ssh tidak lagi menggunakan gantungan kunci secara default. Karena itu, Anda akan diminta memasukkan kata sandi untuk kunci setelah Anda memutakhirkan, dan lagi setelah setiap restart.
Solusinya cukup sederhana, dan diuraikan dalam komentar thread github ini . Begini cara Anda mengaturnya:
Pastikan Anda telah menyelesaikan Langkah 1 di atas untuk menyimpan kunci di gantungan kunci.
Jika Anda belum melakukannya, buat
~/.ssh/config
file. Dengan kata lain, dalam.ssh
direktori di direktori home Anda, buat file bernamaconfig
.Dalam
.ssh/config
file itu, tambahkan baris berikut:Ubah
~/.ssh/id_rsa
ke nama file aktual kunci pribadi Anda. Jika Anda memiliki kunci pribadi lainnya di~.ssh
direktori Anda , tambahkan juga satuIdentityFile
baris untuk masing-masingnya. Misalnya, saya memiliki satu baris tambahan yang bertuliskanIdentityFile ~/.ssh/id_ed25519
kunci pribadi kedua.Ini
UseKeychain yes
adalah bagian kunci, yang memberitahu SSH untuk mencari di gantungan kunci OSX Anda untuk frasa sandi utama.Itu dia! Lain kali Anda memuat koneksi ssh, itu akan mencoba kunci pribadi yang Anda tentukan, dan itu akan mencari frasa sandi mereka di gantungan kunci OSX. Tidak perlu mengetik kata sandi.
sumber
ssh-add -K ...
menambahkan kunci ke agen ssh tanpa meminta kata sandi, tetapi hanya untuk sesi saat ini. Setelah reboot, saya harus menerbitkan ulang perintah.ssh-add -A
secara manual untuk memuat gantungan kunci yang disimpan. Beberapa kemungkinan solusi yang dirujuk di atas..ssh/config
file terlihat menjanjikan! Lihat github.com/lionheart/openradar-mirror/issues/…A
bendera di samping benderaK
untuk menambahkan kunci saya ke gantungan kunci dan mendaftarkan frasa sandi ke dalamnya (ssh-add -AK ~/.ssh/[your-private-key]
). Terima kasih!Saya memiliki masalah yang sama, karena saya diminta SETIAP SAAT untuk frasa sandi kunci pub saya.
Per saran pengguna "trisweb" di atas, saya mengaktifkan opsi ini ke ~ / .ssh / config:
TAPI masih diminta setiap kali saya ingin menggunakan ssh.
Akhirnya saya menyalakan "ssh -v" dan menemukan baris debug ini:
Saya kemudian membuka gantungan kunci saya di "Keychain Access.app", menemukan kunci bernama "SSH: /Users/username/.ssh/id_rsa" dan membukanya.
Saya mengklik "Tampilkan kata sandi" untuk mengungkapkan kata sandi dan memang menemukan bahwa frasa sandi di keyring adalah frasa sandi lama.
Saya memperbarui frasa sandi di Akses Keychain, dan sekarang berfungsi tanpa kata sandi.
Saya juga bisa memperbarui frasa sandi dengan frasa ini:
sumber
Anda diminta kata sandi setiap kali karena gantungan kunci "login" Anda dikunci setelah tidak aktif dan / atau tidur atau dalam kasus Anda reboot. Ada dua cara untuk menyelesaikan ini untuk Anda.
Ubah pengaturan untuk gantungan kunci "login" Anda. Dengan asumsi kunci ssh Anda disimpan di gantungan kunci "login".
Hasilkan kunci SSH lain tanpa menggunakan kata sandi.
ssh-keygen -t rsa -b 4096 -C <comment> -f <.ssh/id_rsa>
ssh-add -K <path to ssh key>
Anda seharusnya tidak diminta memasukkan kata sandi gantungan kunci lagi.
sumber
ssh-add
dari dalam SSH,security unlock-keychain
harus dipanggil terlebih dahulu. Juga, saya tidak perlu membuat direktori untuk-f
parameter. Sayangnya, saya masih harus memanggilsecurity unlocl-keychain
sesi SSH untuk mengakses Keychain login, yang meminta kata sandi setiap kali ...Juga, di macOS Sierra dan HighSierra (tidak tahu tentang versi sebelumnya), menjalankan
ssh-add -A
akan membuat agen memuat semua kunci yang frasa sandi disimpan pada Keychain ... Sangat bergunasumber
Untuk semua yang tidak berfungsi di atas, masalah saya tampaknya karena saya menduplikasi
UseKeychain yes
&AddKeysToAgent yes
di semua profil / pintasan kunci ssh. Saya memperbarui~/.ssh/config
file saya untuk mendeklarasikan ini hanya sekali dan sekarang semuanya memuat saat login tanpa meminta kata sandi saat startup, misalnya:sumber
Tambahkan kunci publik di:
Kunci publik biasanya aktif:
Semoga itu bisa membantu
sumber
authorized_keys