Saya menggunakan Mac OS X Lion dan login host jarak jauh melalui SSH setiap hari. Terlepas dari kenyataan bahwa saya menggunakan pasangan kunci SSH untuk otentikasi jarak jauh dan saya tidak perlu menggunakan frase login setiap host, masih sangat menjengkelkan bahwa terminal meminta frasa sandi untuk mengakses kunci pribadi SSH saya.
Untuk alasan keamanan, saya pikir, frasa sandi untuk mengakses kunci pribadi SSH harus diperlukan. Apakah ada cara yang membuat terminal untuk menanyakan frasa tepat hanya satu kali saat start up, lalu menghafalnya, dan secara otomatis menggunakan kunci pribadi saya di sesi SSH nanti?
Ada sebuah skrip bernama keychain
yang berfungsi dengan baik di Gentoo Linux. Tapi saya tidak pernah mengetahuinya di Mac OS X Lion. Terlebih lagi, ada begitu banyak hal menakutkan, seperti ssh-agent
, ssh-add
. Setelah membaca berbagai bahan tentang toolkit SSH dan melakukan beberapa percobaan yang frustrasi, saya menjadi lebih bingung.
Karena itu, saya datang ke StackExchange, mencari beberapa saran tentang pertanyaan-pertanyaan berikut.
- Apa
ssh-agent
,ssh-add
,keychain
,Keychain Access.app
dan bagaimana mereka berinteraksi satu sama lain? - Bagaimana saya bisa memasukkan frasa sandi untuk kunci pribadi SSH saya satu kali saat masuk, dan menggunakannya secara bebas pada pembuatan sesi SSH nanti?
- Errr ... Ada apa dengan itu
Keychain Access.app
? Itu tidak menyimpan frasa SSH seperti sebelumnya.
Saya mencantumkan apa yang telah saya lakukan di sini. Semoga ada petunjuk tentang langkah-langkah yang saya lewatkan.
Langkah 1. Buat pasangan kunci SSH di Mac saya.
$ ssh-keygen -t rsa -C "me@email.com"
# Set a passphrase for accessing the private key.
Langkah 2. Salin kunci publik SSH saya ke host jarak jauh. Untuk mengambil contoh, saya menyalin kunci ke localhost, Mac.
$ ssh-copy-id USER@localhost
# Enter the login password for USER at localhost, not my SSH passphrase
Langkah 3. Kemudian coba sambungkan ke host jarak jauh (localhost di sini), melalui otentikasi pasangan kunci SSH.
$ ssh USER@locahost
Enter passphrase for key '/Users/YOUR_ACCOUNT/.ssh/id_rsa':
# Enter my SSH passphrase, not the login password.
Langkah 4. Logout dari host jarak jauh dan coba sambungkan lagi. Sialan, terminal meminta frase SSH lagi.
Pertanyaan yang sering diajukan adalah "Apakah ssh-agent bekerja dengan baik di Mac Anda?". Terus terang, saya tidak tahu apa yang terjadi pada hal-hal ini. Di sini menunjukkan beberapa hasil yang berjalan.
$ echo $SSH_AUTH_SOCK
/tmp/launch-M48niA/Listeners
$ echo $SSH_AUTH_PID
(EMPTY)
$ ssh-add -l
Could not open a connection to your authentication agent.
$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-Z54zXukQiP/agent.26769; export SSH_AUTH_SOCK;
SSH_AGENT_PID=26770; export SSH_AGENT_PID;
echo Agent pid 26770;
$ ssh-add -l
Could not open a connection to your authentication agent.
$ echo $SSH_AUTH_SOCK
/tmp/launch-M48niA/Listeners
$ echo $SSH_AUTH_PID
(STILL EMPTY)
$ ssh-agent # Oh no, anther ssh-agent with different PID
SSH_AUTH_SOCK=/tmp/ssh-cx0B4FUX8B/agent.26898; export SSH_AUTH_SOCK;
SSH_AGENT_PID=26899; export SSH_AGENT_PID;
echo Agent pid 26899;
$ ps -e | grep -i ssh
26769 ?? 0:00.03 ssh-agent
26899 ?? 0:00.02 ssh-agent
Setiap umpan balik disambut. Terima kasih!