khóa công khai luôn yêu cầu mật khẩu và cụm từ khóa


19

Tôi đang cố gắng SSH từ NAS sang máy chủ web bằng khóa công khai. Người dùng NAS là 'root' và người dùng máy chủ web là 'sao lưu'

Tôi có tất cả các quyền được đặt chính xác và khi tôi gỡ lỗi kết nối SSH tôi nhận được: (chút cuối cùng của quá trình gỡ lỗi)

debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: publickey
debug1: Offering DSA public key: /root/.ssh/id_dsa.pub
debug1: Server accepts key: pkalg ssh-dss blen 433
debug1: key_parse_private_pem: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
Enter passphrase for key '/root/.ssh/id_dsa.pub':

Tôi đang sử dụng lệnh:

ssh -v -i /root/.ssh/id_dsa.pub backup@webserver.com

Thực tế là nó đang yêu cầu một cụm mật khẩu là một dấu hiệu tốt, nhưng tôi không muốn nó nhắc về mật khẩu này hoặc mật khẩu (sẽ xuất hiện sau đó nếu tôi nhấn 'return' trên cụm mật khẩu)

Câu trả lời:


24

Đó là vì khóa riêng của bạn được mã hóa ...

Bạn có thể thêm khóa của mình vào một tác nhân ssh bằng cách sử dụng ssh-addhoặc xóa cụm mật khẩu (và với nó là mã hóa) khỏi khóa bằng lệnh sau:

ssh-keygen -p -f /root/.ssh/id_dsa -N ''


CHỈNH SỬA

Ồ tôi mới nhận ra rằng bạn cố gắng sử dụng khóa chung của mình để xác thực ... Bạn muốn sử dụng khóa riêng ở đó:

ssh -v -i /root/.ssh/id_dsa backup@webserver.com

Và chỉ để đảm bảo chắc chắn, nội dung của tệp id_dsa.pubđi vào ~backup/.ssh/authorized_keysmáy chủ web. Bạn có thể sử dụng lệnh sau để tự động làm điều đó

ssh-copy-id -i /root/.ssh/id_rsa.pub backup@webserver.com

vẫn nhận được vấn đề. Nó đã hoạt động và cấp cho tôi 'nhận dạng của bạn đã được lưu với cụm mật khẩu mới'. nhưng sau đó vẫn yêu cầu mật khẩu vào lần tiếp theo tôi thử và đăng nhập. Tôi không chắc chắn những gì khác để thử ...
Andrew Atkinson

kiểm tra câu trả lời được cập nhật của tôi ... có lẽ điều đó sẽ giúp ...
andrekeller

cảm ơn bạn, có vẻ như tôi đã cố gắng so sánh khóa chung với khóa chung ... Tôi không cần xóa cụm mật khẩu
Andrew Atkinson

Thực tế là tôi đã sử dụng quán rượu của mình để xác thực (một lỗi ngu ngốc) là vấn đề. Cảm ơn!
Qix

6

Điều này xảy ra với tôi khi khóa riêng tôi không có định dạng OpenSSH.

Ban đầu tôi đã tạo khóa của mình trên các cửa sổ bằng cách sử dụng PuttyGen và đã bị trả về với điều tương tự.

Tôi đã có thể sửa nó bằng cách tải khóa trong PuttyGen và nhấp vào "Chuyển đổi" để chuyển nó sang định dạng OpenSSH.


2

Có một vài điều.

Chủ yếu, nếu KEY yêu cầu mật khẩu, khóa được tạo với nó. Thứ hai, nếu hệ thống đang nhắc nhập mật khẩu sau đó, thì khóa không được xác thực. Có nghĩa là, bạn sẽ cần tạo lại khóa SSH của mình (hoặc thay đổi nó theo đề xuất của @rbtux) và sửa các tệp ủy quyền.

ssh-keygen -t {dsa | rsa} -b {1024 | 2048 | 4096} -C "bình luận tùy chọn" -f id_examplekey

Các mục trong dấu ngoặc nhọn là các tùy chọn, loại và kích thước bit (Để nêu rõ ràng: dsa> rsa, 4096> 1024 - về mặt "bảo mật").

Sau đó, bạn cần thêm khóa chung (.pub) vào tệp authorized_keysauthorized_keys2(đó là một quan niệm sai lầm phổ biến để nói .pub là để sử dụng cục bộ, tuy nhiên, nó được dự định so sánh với) Vì vậy, trong .sshthư mục của máy chủ .

$ cat id_examplekey.pub >> ủy quyền_key {, 2}

Sau đó, bạn nên đảm bảo các quyền chính chmod 600 id_examplevà để giảm bớt việc nhập tất cả, bạn có thể thiết lập tệp cấu hình: ~/.ssh/configtrên hộp cục bộ của bạn (đó là khung xương, bạn có thể tùy chỉnh tấn này):

Host example.com
    User WHATEVERNAME
    IdentityFile ~/.ssh/id_examplekey

nhưng phần trong phần gỡ lỗi có nội dung: debug1: Máy chủ chấp nhận khóa: pkache ssh-dss blen 433 không có nghĩa là khóa đã được chấp nhận? Tôi đã tạo lại một lần nữa mà không có cụm mật khẩu, vẫn như vậy? - Tôi không có ý kiến? Cảm ơn bạn
Andrew Atkinson

@AndrewAtkinson Hình như bạn đã hiểu nó bên dưới. Bạn cần khóa riêng trên máy từ (cục bộ, máy khách, bất cứ thứ gì) và khóa public.pub được thêm vào tệp ủy quyền. Những gợi ý khác của tôi sẽ giúp bạn tiết kiệm thời gian: D Chúc may mắn!
nerdwaller

Bạn viết "Chủ yếu, nếu KEY yêu cầu mật khẩu, khóa được tạo bằng nó." <- yeah mặc dù tôi chỉ kiểm tra những gì người hỏi đã làm, vì vậy, làm -i với khóa công khai $ ssh user@comp -i ~/.ssh/id_rsa.pubvà nó nói sai quyền và riêng tư khóa sẽ bị bỏ qua .. vì vậy tôi đã thay đổi quyền thành 600 như id_rsa, và nó yêu cầu một cụm mật khẩu. Vì vậy, thực sự, sau đó nó sẽ yêu cầu cụm mật khẩu nếu bạn chỉ định khóa chung, mặc dù cả khóa chung và khóa riêng đều không được tạo bằng cụm mật khẩu
barlop

2

Đối với tôi vì khóa được mã hóa, tôi đã làm theo các bước sau:

  • Bắt đầu đại lý ssh: $ ssh-agent bash
  • Thêm khóa nhận dạng tiêu chuẩn vào trình quản lý khóa: $ ssh-add
  • Nếu bạn muốn thêm một khóa khác, thì: $ ssh-add /location/of/key

Để kiểm tra bất cứ lúc nào, danh sách các khóa hiện đang được tải:

$ ssh-add -l

Thông tin chi tiết có thể được lấy từ liên kết này


1

thử https://wiki.gentoo.org/wiki/Keychain

Nó là loại một bọc trên ssh-agentssh-add

Ưu điểm: Không cần nhập mật khẩu nhiều lần miễn là bạn không khởi động lại. Có thể được sử dụng trong crontab.

Nó có thể giúp đỡ.


1

Có thể là do bạn đang sử dụng một pubkey DSA bị tắt theo mặc định trong OpenSSH v7.

Nếu bạn không thể thay đổi cặp khóa, một cách giải quyết có thể sẽ là thông báo cho trình nền SSH của bạn tại webserver.com để chấp nhận các loại Khóa đó, bằng cách cập nhật /etc/ssh/sshd_confighoặc tương đương thêm dòng sau

PubkeyAcceptedKeyTypes=+ssh-dss

Và sau đó khởi động lại dịch vụ

/etc/init.d/ssh restart                     # or equivalent

0

Trên Mac OSX, bạn có thể thêm khóa riêng của mình vào móc khóa bằng lệnh:

ssh-add -K /path/to/private_key

Nếu khóa riêng của bạn được lưu trữ tại ~ / .ssh và được đặt tên là id_rsa:

ssh-add -K ~/.ssh/id_rsa

Sau đó, bạn sẽ được nhắc nhập mật khẩu, mật khẩu sẽ được lưu trong móc khóa của bạn.


Tôi cần làm gì trên máy khách Linux nếu máy khách Mac hoạt động?
bbaassssiiee
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.