Làm cách nào để sao lưu khóa ssh?


34

Tôi đang lên kế hoạch thực hiện cài đặt mới Ubuntu 11.10 trong hệ thống của mình. Trước đó tôi đã thiết lập xác thực ssh dựa trên khóa trong máy này. Có thể sao lưu các phím ssh đó, để tôi có thể sử dụng nó trong cài đặt mới của mình. Hoặc nếu không tôi phải thiết lập lại xác thực ssh keybasing? Nếu tôi có thể sao lưu, các tập tin tôi cần sao chép là gì? Ai đó có thể giải thích chi tiết xin vui lòng. Cảm ơn trước.


1
Bạn đang nói về một máy chủ hoặc một máy khách?
enzotib

Đang nói về Máy chủ.
karthick87

Câu trả lời:


39

Chỉ trả lời SSH ... có, bạn có thể giữ các khóa của mình.

Mặc dù vậy, tôi không thể nghĩ ra bất kỳ chủ đề nào để giải thích về điều đó. Rất đơn giản: nếu tên người dùng của bạn là karthick, thì các khóa được đặt trong một thư mục ẩn ở đây:

/home/karthick/.ssh

hoặc là

~/.ssh

Các id_rsa.pubtập tin chứa khóa công khai được sử dụng để xác thực. Nhưng có những tệp khác để giữ - tất cả chúng, thực sự , chẳng hạn, chẳng known_hosts hạn . Các QUAN TRỌNG NHẤTid_rsa(lưu ý sự thiếu .pub) vì đây là khóa riêng của bạn. Sao lưu từng người dùng. Ví dụ: nếu bạn thiết lập SSH cho root, hãy lấy /root/.ssh. Và như vậy cho nhiều tài khoản như bạn có vì lý do này.


1
đó là lý do tại sao luôn luôn có một phân vùng tốt trong thư mục / home; chỉ trong trường hợp bạn muốn thực hiện một bản in mới, bạn sẽ không muốn mất bất kỳ thứ gì trong cấu hình của riêng bạn.
maniat1k

5
Câu trả lời này là sai lệch. SSH sử dụng cặp khóa riêng / chung. Khóa riêng là trong id_rsa. Đây là khóa nhập nhiều nhất để sao lưu.
Jan

1
Bạn có thể khôi phục khóa chung (id_rsa.pub) từ khóa riêng (id_rsa), nhưng không phải ngược lại. Các .pubtập tin chứa một dòng có thể được đặt trong các máy chủ ~/.ssh/authorized_keysvà không được sử dụng ở tất cả khi kết nối với máy chủ.
Lekensteyn

1
@ maniat1k Tôi thường không đồng ý rằng bạn nên có /homemột phân vùng riêng cho HĐH, bởi vì một trong những khác biệt giữa các bản phân phối hoặc phiên bản dist là định dạng tệp cấu hình có thể thay đổi, vì vậy mọi thứ có thể bị hỏng theo những cách không mong muốn. Nếu bạn muốn giữ cấu hình của mình trên các HĐH, tôi nghĩ rằng bạn nên làm điều đó rõ ràng cho các chương trình cụ thể.
quodlibetor

1
@Lekensteyn Trên thực tế, .pubtệp đôi khi được sử dụng khi kết nối với máy chủ. Nếu khóa bí mật được mã hóa, .pubtập tin sẽ được sử dụng để gửi khóa chung tới máy chủ. Nếu máy chủ từ chối khóa chung, không cần phải nhắc người dùng nhập mật khẩu. Chỉ khi máy chủ chấp nhận khóa chung, khóa bí mật mới được giải mã. Và nếu bạn có nhiều khóa trong một ssh-agentvà muốn hướng dẫn khách hàng ssh sử dụng chúng trong số đó, bạn có thể làm như vậy bằng cách yêu cầu nó sử dụng một .pubtệp cụ thể để xác thực.
kasperd

33

Khóa mật mã mà bạn có thể muốn sao lưu.

  • ~/.gnupg/*
  • ~/.pki/nssdb/*
  • ~/.gnome2/keyrings/*
  • ~/.ssh/*
  • /usr/local/apache2/conf/ssl.crt/server.crt
  • /usr/local/apache2/conf/ssl.key/server.key
  • /etc/ssh/*
  • /etc/ssl/private/*
  • /etc/cups/ssl/*

3
Tuy nhiên, bạn đã bỏ lỡ một câu hỏi mà anh ấy đã hỏi về ( ~/.ssh) nhưng một danh sách tốt :)
Caesium

Bạn cũng bỏ lỡ/etc/ssh
Jan

Danh sách tuyệt vời! Google khó có thể liệt kê một danh sách như vậy. Cảm ơn bạn đã cung cấp nó.
Christian

8

Mỗi người dùng có một directoy ~ / .ssh, thường chứa các tệp sau:

1) id_dsa             private key of this user (different filename for rsa keys)
1) id_dsa.pub         public key of this user
2) authorized_keys    public key of other users (or same user on other machines)
   config             personal configuration
   known_hosts        host keys of other machines

Ngoài ra, trong / etc / ssh /, bạn sẽ tìm thấy:

3) ssh_host_dsa_key
3) ssh_host_dsa_key.pub
3) ssh_host_rsa_key
3) ssh_host_rsa_key.pub

Đó là các phím máy chủ, các phím xác định máy tính này.

Bạn chắc chắn muốn sao lưu tất cả các khóa riêng tư và công khai. Chúng tôi gọi máy trong câu hỏi về nhà và người dùng người dùng @ home. Cùng một người có tài khoản người dùng @ từ xa và sử dụng đăng nhập dựa trên khóa theo cả hai hướng. Điều gì sẽ xảy ra nếu bạn mất bất kỳ tệp chính nào:

  1. Bạn mất danh tính của người dùng @ home. ssh user@remotetừ nhà sẽ không còn làm việc với auth dựa trên khóa.
  2. người dùng @ từ xa mất quyền đăng nhập vào nhà bằng chìa khóa của mình. ssh user@homesẽ không còn làm việc từ xa với auth dựa trên khóa.
  3. Bạn mất danh tính của chủ nhà. user @ remote sẽ thấy cảnh báo rằng khóa máy chủ đã thay đổi khi thử ssh user@home. Tùy thuộc vào cấu hình, điều này sẽ ngăn anh ta đăng nhập.

Để trả lời các câu hỏi không được hỏi ... :)
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.