Bagaimana cara saya memverifikasi / memeriksa / menguji / memvalidasi frasa sandi SSH saya?

297

Saya pikir saya lupa frasa sandi untuk kunci SSH saya, tetapi saya punya firasat apa itu. Bagaimana saya memeriksa apakah saya benar?

joachim
sumber
5
Ini adalah passphrase, tanpa kata sandi;)
Timo

Jawaban:

123

Anda dapat memverifikasi frasa sandi kunci SSH Anda dengan mencoba memuatnya ke agen SSH Anda. Dengan OpenSSH ini dilakukan melalui ssh-add.

Setelah selesai, ingatlah untuk membongkar kata sandi SSH Anda dari terminal dengan menjalankan ssh-add -d.

Ignacio Vazquez-Abrams
sumber
13
Setelah selesai memeriksa, bongkar frasa sandi kunci SSH Anda dari agen SSH Anda denganssh-add -d
Kache
1
ssh-add membutuhkan hak admin pada mesin, saya pikir. Saya mendapatkan kesalahan: "Tidak dapat membuka koneksi ke agen otentikasi Anda."
IgorGanapolsky
@IgorGanapolsky: Tidak, ini membutuhkan agen otentikasi yang berjalan. Ubah skrip atau opsi startup Anda untuk memunculkannya.
Ignacio Vazquez-Abrams
20
Jawaban Rob adalah jawaban yang benar.
mgarciaisaia
Jika Anda kebetulan menggunakan selinux, Anda mungkin juga ingin memeriksa konteks direktori home dan file .ssh! Saya cukup beruntung dapat menggunakan perbaikan sederhana ini: # restorecon -R -v /home/userUntuk memeriksa apakah ini masalahnya (meskipun perintah sebelumnya tidak menyebabkan masalah), Anda dapat menggunakan $ ls -lZR <home_dir>untuk memeriksa konteksnya. Jika Anda tidak melihat user_home_tpada direktori home dan ssh_home_tpada .sshdirektori dan authorized_keysfile, maka gunakan restoreconuntuk memperbaikinya.
fbicknel
523

ssh-keygen -y

ssh-keygen -y akan meminta Anda untuk frasa sandi (jika ada).

    Jika Anda memasukkan frasa sandi yang benar , itu akan menunjukkan kepada Anda kunci publik yang terkait.
    Jika Anda memasukkan frasa sandi yang salah , itu akan ditampilkan load failed.
    Jika kunci tidak memiliki frasa sandi, maka tidak akan meminta Anda untuk frasa sandi dan akan segera menunjukkan kepada Anda kunci publik yang terkait.

misalnya,

Buat pasangan kunci publik / pribadi baru, dengan atau tanpa frasa sandi:

$ ssh-keygen -f /tmp/my_key
...

Sekarang lihat apakah Anda dapat mengakses pasangan kunci:

$ ssh-keygen -y -f /tmp/my_key


Berikut ini adalah contoh yang diperluas, menampilkan output.

Buat pasangan kunci publik / pribadi baru, dengan atau tanpa frasa sandi:

$ ssh-keygen -f /tmp/my_key
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /tmp/my_key.
Your public key has been saved in /tmp/my_key.pub.
The key fingerprint is:
de:24:1b:64:06:43:ca:76:ba:81:e5:f2:59:3b:81:fe [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
|     .+          |
|   . . o         |
|    = . +        |
|   = + +         |
|  o = o S .      |
|   + = + *       |
|    = o o .      |
|     . .         |
|      E          |
+-----------------+

Coba akses pasangan kunci dengan memasukkan frasa sandi yang benar. Perhatikan bahwa kunci publik akan ditampilkan dan status keluar ( $?) akan 0menunjukkan keberhasilan:

$ ssh-keygen -y -f /tmp/my_key
Enter passphrase:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBJhVYDYxXOvcQw0iJTPY64anbwSyzI58hht6xCGJ2gzGUJDIsr1NDQsclka6s0J9TNhUEBBzKvh9nTAYibXwwhIqBwJ6UwWIfA3HY13WS161CUpuKv2A/PrfK0wLFBDBlwP6WjwJNfi4NwxA21GUS/Vcm/SuMwaFid9bM2Ap4wZIahx2fxyJhmHugGUFF9qYI4yRJchaVj7TxEmquCXgVf4RVWnOSs9/MTH8YvH+wHP4WmUzsDI+uaF1SpCyQ1DpazzPWAQPgZv9R8ihOrItLXC1W6TPJkt1CLr/YFpz6vapdola8cRw6g/jTYms00Yxf2hn0/o8ORpQ9qBpcAjJN
$ echo $?
0

Coba akses pasangan kunci dengan memasukkan frasa sandi yang salah. Perhatikan bahwa pesan kesalahan "muat gagal" akan ditampilkan (pesan mungkin berbeda tergantung pada OS) dan status keluar ( $?) adalah 1untuk menunjukkan kesalahan:

$ ssh-keygen -y -f /tmp/my_key
Enter passphrase:
load failed
$ echo $?
1

Mencoba mengakses pasangan kunci yang tidak memiliki frasa sandi. Perhatikan bahwa tidak ada prompt untuk frasa sandi, kunci publik akan ditampilkan, dan status keluar ( $?) akan 0menunjukkan keberhasilan:

$ ssh-keygen -y -f /tmp/my_key_with_no_passphrase
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLinxx9T4HE6Brw2CvFacvFrYcOSoQUmwL4Cld4enpg8vEiN8DB2ygrhFtKVo0qMAiGWyqz9gXweXhdmAIsVXqhOJIQvD8FqddA/SMgqM++2M7GxgH68N+0V+ih7EUqf8Hb2PIeubhkQJQGzB3FjYkvRLZqE/oC1Q5nL4B1L1zDQYPSnQKneaRNG/NGIaoVwsy6gcCZeqKHywsXBOHLF4F5nf/JKqfS6ojStvzajf0eyQcUMDVhdxTN/hIfEN/HdYbOxHtwDoerv+9f6h2OUxZny1vRNivZxTa+9Qzcet4tkZWibgLmqRyFeTcWh+nOJn7K3puFB2kKoJ10q31Tq19
$ echo $?
0
Rob Bednark
sumber
2
Jika tidak ada kata sandi, itu hanya akan mencetak kunci publik terkait.
Kyrremann
1
Terima kasih @ Kirremann! Saya sekarang telah memperbarui jawaban untuk mencerminkan itu.
Rob Bednark
ssh-keygen -ymeminta file kunci dan menawarkan default ketika klik kembali seperti yang diharapkan.
Timo
Saya sudah terbiasa ssh-keygen -ymemeriksa frasa sandi kunci ssh saya. Ini bekerja dengan baik kecuali Ubuntu saya menjadi sangat lambat. Sebagian besar program dapat memulai dalam satu menit atau lebih sementara penggunaan CPU adalah 100%. Setelah me-restart laptop saya, saya hampir tidak bisa masuk karena butuh beberapa menit untuk melihat desktop saya. Akhirnya saya menemukan masalah ini di Ask Ubuntu . Saya harus mulai dengan gnome-keyring-daemonmenyelesaikan masalah.
Adam Fónagy
2

Memperluas solusi @ RobBednark ke skenario Windows + Putty tertentu, Anda dapat melakukannya:

  1. Hasilkan pasangan kunci SSH dengan PuTTYgen (mengikuti pembuatan kunci SSH Anda secara manual di Windows ), menyimpannya ke file PPK;

  2. Dengan menu konteks di Windows Explorer, pilih Edit dengan PuTTYgen. Ini akan meminta kata sandi.

Jika Anda mengetikkan kata sandi yang salah, itu hanya akan meminta lagi.

Catatan, jika Anda suka untuk mengetik, gunakan perintah berikut pada folder yang berisi file PPK: puttygen private-key.ppk -y.

kokbira
sumber
0

Gunakan "ssh-keygen -p". Anda dapat menambahkan "-f"

Ini akan menanyakan kata sandi lama Anda. Jika kata sandi itu benar, itu akan meminta untuk memasukkan kata sandi baru. Jika kata sandi lama salah, Anda akan mendapatkan "Gagal memuat kunci <...>".

Alex F
sumber
-1

Jika frasa sandi Anda adalah untuk membuka kunci kunci SSH Anda dan Anda tidak memilikinya ssh-agent, tetapi memasang sshd (daemon SSH) di mesin Anda, lakukan:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys;
ssh localhost -i ~/.ssh/id_rsa

Di mana ~/.ssh/id_rsa.pubkunci publik, dan ~/.ssh/id_rsaadalah kunci pribadi.

Alexx Roche
sumber
1
Tidak meminta pass pass melakukan ini
Imme22009
Bagi saya, untuk membuka kunci id_rsa pribadi ke ssh localhost
Alexx Roche
Saya mendapatkan kesalahan: "ssh: terhubung ke host localhost port 22: Nomor file salah"
IgorGanapolsky