OSX ssh-agent: tidak ada menempelkan kata sandi, dan masalah dengan PKCS # 8?

37

Saya menggunakan ssh pada mesin saya, dan telah menetapkan kata sandi lama yang tidak ramah terhadap manusia yang disimpan di manajer kata sandi saya. Yang membuat saya gila setiap kali adalah saya tidak bisa menempel ke jendela seperti gambar di bawah ini. Saya tahu Remember password in my keychainopsi dan menggunakannya. Kadang-kadang saya harus memasukkan yang baru. Mengapa saya tidak bisa menempelkan ke bidang kata sandi?

Hal yang sama untuk dialog yang muncul ketika mencolokkan disk terenkripsi.

jendela ssh-agent

Beberapa pembaruan:

  1. Saya menemukan bagaimana saya dapat menghindari dialog: cukup gunakan ssh-add -K ~/.ssh/id_rsa, dan kemudian saya dapat menempelkan passphrase ke terminal.
  2. Seperti disebutkan mattmcmanus, Kunci saya dienkripsi menggunakan pkcs8yang rusak pada ssh-agent Yosemite. Ini tidak ada hubungannya dengan masalah di atas, tetapi memang terpikir oleh saya pada saat bersamaan (baca disini ).
  3. menggunakan ssh-add masih tidak memperbaikinya untuk disk terenkripsi.
joni
sumber
Anda harus menerima salah satu jawaban yang baik di bawah ini. Anda juga harus menghindari mengajukan banyak pertanyaan dalam satu posting.
Alain O'Dea
1
@ AlainO'Dea Pertama, ya saya harus, ini adalah pertanyaan lama dan saya lupa tentang itu. Namun untuk hal kedua: pada saat bertanya, tidak jelas bahwa masalah kedua (PKCS yang rusak) akan muncul, lihat riwayat sunting.
joni

Jawaban:

22
  1. Dialog untuk ssh-agent dapat dielakkan dengan menambahkan kunci di konsol / terminal: ssh-add ~/.ssh/id_rsa. Anda kemudian dapat menempelkan kata sandi ke terminal. Juga, menambahkan -Kopsi untuk ssh-addakan menyimpannya di gantungan kunci sesuai komentar Oliver Lacans.
  2. Seperti kata mattmcmanus, id_rsaenkripsi menggunakan PKCS tampaknya rusak pada OSX Mavericks ssh-agent. Solusi cepat adalah mendekripsi keyfile, dan mengenkripsi lagi dengan prosedur ssh standar (Metode derivasi kunci: MD5 ...):

mv id_rsa id_rsa.pkcs
openssl rsa -in id_rsa.pkcs -out id_rsa
# enter passphrase to decrypt
chmod 0600 id_rsa
ssh-keygen -f id_rsa -p
# enter passphrase to encrypt again
joni
sumber
3
Sementara jawaban joni sangat bagus, saya akan merekomendasikan ssh-add -K ~/.ssh/id_rsayang "Simpan frasa sandi di gantungan kunci Anda" menurut ssh-add --help. Ini akan mencegah Anda dari harus menjalankan kembali ssh-addsetiap kali Anda membuka tab shell baru atau ketika Anda me-restart mesin Anda.
Olivier Lacan
2

Apakah ini kunci PKCS # 8 dan apakah Anda menggunakan maverick? Jika demikian, itu tampaknya sepenuhnya rusak. Belum yakin ada solusinya.

mattmcmanus
sumber
1
mengapa ini harus terjadi? Masalahnya sejauh ini adalah hanya bidang kata sandi pada dialog tidak menerima paste. Ini sudah ada pada 10.8, tetapi karena pembaruan ke 10.9 saya harus memasukkan frasa sandi lagi.
joni
OKE, Anda sepertinya benar ... lihat jawaban saya sendiri.
joni
2

Pada Mac OS X El Capitan, perintah ssh-add dapat melakukan ini dengan opsi -K :

$ ssh-add -K ~/.ssh/id_rsa
Enter passphrase for /Users/your.username/.ssh/id_rsa:

Anda dapat menempelkan kata sandi Anda ke prompt ini dengan ⌘-V .

Sesi untuk ini terlihat seperti ini:

$ ssh-add -K ~/.ssh/id_rsa
Enter passphrase for /Users/your.username/.ssh/id_rsa:
Passphrase stored in keychain: /Users/your.username/.ssh/id_rsa
Identity added: /Users/your.username/.ssh/id_rsa (/Users/your.username/.ssh/id_rsa)

Kutipan yang relevan dari SSH-ADD (1) dibesarkan dengan man ssh-add :

-K Saat menambahkan identitas, setiap frasa sandi juga akan disimpan di gantungan kunci Anda. Saat menghapus identitas dengan -d, setiap frasa sandi akan dihapus dari gantungan kunci Anda.

INFOSEC CATATAN : Kata sandi Anda tidak akan ditampilkan di shell, tetapi akan diekspos ke semua aplikasi yang berjalan melalui clipboard. Solusi autotype akan lebih aman.

Alain O'Dea
sumber
1

Anda dapat menjalankan skrip seperti ini di AppleScript Editor:

tell application "System Events" to tell process "SecurityAgent"
    set value of text field 2 of scroll area 1 of group 1 of window 1 to "pa55word"
    click button 2 of group 2 of window 1
end tell
Lri
sumber
1
terima kasih, ini akan membantu untuk dialog 'disk terenkripsi'. Tapi mengapa apel menonaktifkan bidang ini untuk menempelkan ???
joni
Berguna, tapi ya, jangan berpikir ini memecahkan masalah # 8 PKCS, di mana bahkan jika Anda memasukkan kata sandi yang benar, itu mengatakan kata sandi yang buruk.
Bob Aman
Tidak masuk akal. Sekarang kata sandi Anda yang sangat rahasia terbuka untuk semua orang. Itulah sebabnya TS menggunakan pengelola kata sandi untuk membuat kata sandinya terpusat dan sangat terlindungi.
whaefelinger
1
Tidak berfungsi pada El Capitan. Pertama meminta Editor Script untuk mendapatkan Kontrol Bantu System Events got an error: Script Editor is not allowed assistive access. Sekali yang diizinkan di bawah System Preferences | Keamanan & Privasi Saya dapatkanSystem Events got an error: Can’t get window 1 of process "SecurityAgent". Invalid index.
Alain O'Dea
1

Saya memiliki masalah yang sama. Setelah menemukan pertanyaan ini, saya terus mencari dan menemukan jawaban di tempat lain. Ini adalah pertanyaan yang lebih lama, tetapi tidak memiliki jawaban yang diterima dan masih tinggi pada daftar pencarian. (tidak yakin dengan etiket stackexchange itu).

RE tidak dapat menyalin / menempel: Ini tampaknya karena desain. Tujuannya adalah untuk mencegah semua akses ke bidang dari clipboard untuk mencegah program jahat dari menggores kotak kata sandi. Saya pikir menyisipkan (dan tidak memotong) harus diizinkan, tetapi mungkin ada beberapa alasan teknis.

Untuk hal-hal ssh-agent, pada (setidaknya) Yosemite, -Kopsi dalam ssh-add -K ~/.ssh/blahmelakukan apa yang Anda inginkan - ketikkan kata sandi sekali, kata sandi itu disimpan di gantungan kunci Anda, dan ssh-agent akan membuka kunci secara transparan untuk Anda. Untuk mencoba dan lebih aman, saya meletakkan kata sandi ssh saya di gantungan kunci terpisah yang mengunci dirinya secara berkala.

PerilousApricot
sumber
Adakah peluang Anda bisa membagikan tautan ke jawaban yang Anda temukan?
John Carney
Maaf soal itu! Untuk hal-hal ssh-agent, saya sengaja mengunjungi developer.apple.com/library/mac/documentation/Darwin/Reference/…
PerilousApricot
0

Menggunakan brew openssl dan openssh memperbaiki masalah.

brew update
brew install openssl
brew link openssl --force
brew install openssh

# confirm correct bins are being used
# both should be located in /usr/local/bin
which openssl
which openssh

# add key back to keychain
ssh-add ~/.ssh/id_rsa

Saya tidak yakin apakah paksa menghubungkan openssl merusak apa pun di Mavricks. Sejauh ini, saya belum melihat adanya masalah.

simple10
sumber
1
Tidak ada (lagi) brewformula untuk openssh.
Adam Liter
brew tap homebrew/dupesNamun masih ada. Yang mengatakan, langkah-langkah ini sepertinya tidak menyelesaikan masalah ini untuk saya.
Bob Aman
@ simple10 Jawaban ini memberikan sedikit atau tanpa nilai. Anda setidaknya harus memberikan versi openssl / openssh yang memperbaiki masalah. Selain itu tolong jelaskan mengapa itu akan terjadi.
whaefelinger