Làm cách nào để xác minh / kiểm tra / kiểm tra / xác thực cụm mật khẩu SSH của tôi?


297

Tôi nghĩ rằng tôi đã quên cụm mật khẩu cho khóa SSH của mình, nhưng tôi có linh cảm nó có thể là gì. Làm cách nào để kiểm tra xem tôi có đúng không?


5
Đó là một passphrase, không có mật khẩu;)
Timo

Câu trả lời:


123

Bạn có thể xác minh cụm mật khẩu khóa SSH của mình bằng cách tải nó vào tác nhân SSH. Với OpenSSH, điều này được thực hiện thông qua ssh-add.

Khi bạn đã hoàn tất, hãy nhớ hủy cụm mật khẩu SSH của bạn khỏi thiết bị đầu cuối bằng cách chạy ssh-add -d.


13
Khi bạn đã hoàn tất kiểm tra, hãy tải cụm mật khẩu khóa SSH khỏi tác nhân SSH của bạn vớissh-add -d
Kache

1
ssh-add yêu cầu quyền quản trị trên máy, tôi nghĩ vậy. Tôi gặp lỗi: "Không thể mở kết nối đến tác nhân xác thực của bạn."
IgorGanapolsky

@IgorGanapolsky: Không, nó yêu cầu một tác nhân xác thực đang chạy. Sửa đổi tập lệnh khởi động hoặc tùy chọn của bạn để đưa lên.
Ignacio Vazquez-Abrams


Nếu bạn tình cờ sử dụng selinux, bạn cũng có thể muốn kiểm tra ngữ cảnh của thư mục chính và các tệp .ssh! Tôi đã đủ may mắn để có thể sử dụng cách khắc phục đơn giản này: # restorecon -R -v /home/userĐể kiểm tra xem đây có phải là sự cố không (mặc dù lệnh trước không gây ra bất kỳ sự cố nào), bạn có thể sử dụng $ ls -lZR <home_dir>để kiểm tra ngữ cảnh. Nếu bạn không nhìn thấy user_home_ttrên thư mục chính và ssh_home_ttrên .sshthư mục và authorized_keystệp, thì hãy sử dụng restoreconđể sửa chúng.
fbicknel

523

ssh-keygen -y

ssh-keygen -y sẽ nhắc bạn nhập cụm mật khẩu (nếu có).

    Nếu bạn nhập cụm mật khẩu chính xác , nó sẽ hiển thị cho bạn khóa chung được liên kết.
    Nếu bạn nhập cụm mật khẩu sai , nó sẽ hiển thị load failed.
    Nếu khóa không có cụm mật khẩu, nó sẽ không nhắc bạn nhập cụm mật khẩu và ngay lập tức sẽ hiển thị cho bạn khóa chung được liên kết.

ví dụ,

Tạo một cặp khóa công khai / riêng tư mới, có hoặc không có cụm mật khẩu:

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

Bây giờ hãy xem nếu bạn có thể truy cập cặp khóa:

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


Sau đây là một ví dụ mở rộng, hiển thị đầu ra.

Tạo một cặp khóa công khai / riêng tư mới, có hoặc không có cụm mật khẩu:

$ 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 rob@Robs-MacBook-Pro.local
The key's randomart image is:
+--[ RSA 2048]----+
|     .+          |
|   . . o         |
|    = . +        |
|   = + +         |
|  o = o S .      |
|   + = + *       |
|    = o o .      |
|     . .         |
|      E          |
+-----------------+

Cố gắng truy cập cặp khóa bằng cách nhập cụm mật khẩu chính xác. Lưu ý rằng khóa chung sẽ được hiển thị và trạng thái thoát ( $?) sẽ 0cho biết thành công:

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

Cố gắng truy cập cặp khóa bằng cách nhập cụm mật khẩu không chính xác. Lưu ý rằng thông báo lỗi "tải không thành công" sẽ được hiển thị (thông báo có thể khác nhau tùy theo hệ điều hành) và trạng thái thoát ( $?) sẽ 1chỉ ra lỗi:

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

Cố gắng truy cập một cặp khóa không có cụm mật khẩu. Lưu ý rằng không có lời nhắc cho cụm mật khẩu, khóa chung sẽ được hiển thị và trạng thái thoát ( $?) sẽ 0cho biết thành công:

$ 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

2
Nếu không có mật khẩu, nó sẽ chỉ in ra khóa công khai liên quan.
Kyrremann

1
Cảm ơn @Kyrremann! Bây giờ tôi đã cập nhật câu trả lời để phản ánh điều đó.
Rob Bednark

ssh-keygen -yyêu cầu tệp chính và cung cấp một mặc định khi nhấp trở lại như mong đợi.
Timo

Tôi đã từng ssh-keygen -ykiểm tra cụm mật khẩu của khóa ssh của mình. Nó hoạt động tốt, ngoại trừ Ubuntu của tôi trở nên chậm đáng kinh ngạc. Hầu hết các chương trình có thể khởi động sau một phút hoặc hơn trong khi mức sử dụng CPU là 100%. Sau khi khởi động lại máy tính xách tay của tôi, tôi có thể đăng nhập hầu như không mất vài phút để xem máy tính để bàn của mình. Cuối cùng tôi đã tìm thấy vấn đề này trên Ask Ubuntu . Tôi đã phải bắt đầu bằng cách gnome-keyring-daemongiải quyết vấn đề.
Adam Fónagy

2

Mở rộng giải pháp của @ RobBednark sang kịch bản Windows + PuTTY cụ thể, bạn có thể làm như vậy:

  1. Tạo cặp khóa SSH với PuTTYgen (theo cách thủ công tạo khóa SSH của bạn trong Windows ), lưu nó vào tệp PPK;

  2. Với menu ngữ cảnh trong Windows Explorer, chọn Chỉnh sửa bằng PuTTYgen. Nó sẽ nhắc nhập mật khẩu.

Nếu bạn gõ sai mật khẩu, nó sẽ chỉ nhắc lại.

Lưu ý, nếu bạn muốn nhập, hãy sử dụng lệnh sau trên thư mục chứa tệp PPK : puttygen private-key.ppk -y.


0

Sử dụng "ssh-keygen -p". Bạn có thể thêm "-f"

Nó sẽ nhắc bạn nhập mật khẩu cũ. Nếu mật khẩu đúng, nó sẽ nhắc nhập mật khẩu mới. Nếu mật khẩu cũ không chính xác, bạn sẽ nhận được "Không thể tải khóa <...>".


-1

Nếu cụm mật khẩu của bạn là để mở khóa khóa SSH của bạn và bạn không có ssh-agent, nhưng đã cài đặt sshd (trình nền SSH) trên máy của bạn, hãy làm:

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

Trong trường hợp ~/.ssh/id_rsa.publà chìa khóa công cộng, và ~/.ssh/id_rsalà chìa khóa riêng.


1
Nó không yêu cầu một cụm từ vượt qua làm điều này
Imme22009

Đối với tôi, để mở khóa id_rsa riêng tư sang ssh localhost
Alexx Roche

Tôi gặp lỗi: "ssh: kết nối với máy chủ localhost port 22: Số tệp xấu"
IgorGanapolsky
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.