Tôi đang cài đặt lại máy tính để bàn Linux của mình, làm cách nào để đăng nhập SSH hoạt động?


15

Từ lâu, tôi đã tạo một cặp khóa bằng cách sử dụng ssh-keygenvà tôi đã sử dụng ssh-copy-idđể cho phép đăng nhập vào nhiều máy ảo phát triển mà không cần phải nhập mật khẩu theo cách thủ công. Tôi cũng đã tải lên khóa công khai của mình trên GitHub, GitLab và tương tự để xác thực các kho lưu trữ git bằng cách sử dụng git@thay vì https://.

Làm cách nào tôi có thể cài đặt lại máy tính để bàn Linux của mình và giữ cho tất cả các thông tin đăng nhập này hoạt động? Là sao lưu và khôi phục ~/.ssh/đủ?


2
Đó là một trong nhiều lý do tại sao khi bạn cài đặt môi trường Linux mới, bạn nên có một phân vùng cho /và một phân vùng khác cho/home
olegario

4
@olegario Tôi không đồng ý. Tôi đã sử dụng Linux cho phần còn lại của cuộc đời tôi và hiện đang quản trị> 100 máy, nhưng tôi luôn tìm thấy một /homephân vùng riêng cả rắc rối và hạn chế sử dụng. Tôi hiểu rằng một số người thấy nó hữu ích và điều đó tốt, nhưng tôi không nghĩ rằng nó giúp ích đầy đủ cho tình huống của OP.
marcelm

5
Thực sự không có lợi thế nào cho phân vùng khi chỉ sao lưu và khôi phục /homethông qua tarhoặc bất kỳ phương tiện nào khác, trừ khi bạn có kế hoạch sử dụng lại các phân vùng hiện có, điều này rất nguy hiểm với hầu hết các trình cài đặt hệ điều hành sẽ vui vẻ xóa sạch chúng, trừ khi đó là trên một đĩa vật lý riêng biệt loại bỏ trong quá trình cài đặt.
R ..

1
Khi bạn đã hoàn tất cài đặt lại, bất kể bạn thực hiện chính xác như thế nào, bạn có thể muốn xem xét lại việc chỉ có một cặp chìa khóa cho mọi thứ.
một CVn

Câu trả lời:


29

Bạn cần sao lưu các khóa riêng của mình, ít nhất là. Chúng không thể được tạo lại mà không phải thay thế khóa công khai của bạn ở mọi nơi. Chúng thường có tên bắt đầu bằng id_và không có phần mở rộng.

Các khóa công khai có thể được tạo lại bằng lệnh này : ssh-keygen -y -f path/to/private/key. Cấu hình người dùng của bạn (một tệp có tên "config") cũng có thể hữu ích nếu bạn đã đặt bất kỳ giá trị mặc định nào.

Tất cả các tệp này thường sẽ ở ~ / .ssh, nhưng kiểm tra trước!


28

Đối với các kết nối SSH gửi đi , sao lưu cặp khóa của bạn là đủ. Để thuận tiện, bạn có thể chỉ cần sao lưu ~/.sshthư mục của mình và khôi phục nó vào bản cài đặt mới.

Thông thường việc sao lưu và khôi phục lại thư mục đó là đủ, nhưng nó có thể để lưu trữ các phím khác bởi một trong hai sử dụng cài đặt tùy chỉnh trong ~/.ssh/confighoặc /etc/ssh/ssh_config, hoặc bằng cách sử dụng một SSH-agent và ssh-addnhặt các phím được sử dụng trên các kết nối gửi đi từ một vị trí tùy ý .

Nếu bạn có kết nối SSH đến , bạn cũng có thể xem xét sao lưu các khóa máy chủ SSH tại /etc/ssh/ssh_host_*. Nếu bạn không sao lưu những khóa này, các khóa máy chủ mới sẽ được tạo tự động sshdkhi nó bắt đầu lần đầu tiên trong quá trình cài đặt mới và mọi kết nối SSH đến sẽ hiển thị "Khóa máy chủ SSH không khớp, ai đó có thể đang làm gì đó xấu!" thông báo lỗi và thường từ chối kết nối trừ khi có ai đó xóa khóa máy chủ cũ trên máy khách SSH và chấp nhận một cách rõ ràng khóa mới.

Có vẻ như bạn có thể không có kết nối SSH đến trên hệ thống máy tính để bàn Linux của mình, vì vậy tôi chỉ đề cập đến vấn đề này vì mục đích hoàn chỉnh. Nhưng trên các hệ thống máy chủ hoặc nếu bạn đã thiết lập tự động hóa đáng kể dựa trên SSH, việc thừa nhận khóa máy chủ đã thay đổi có thể là một rắc rối lớn.


1
+1 Đây phải là câu trả lời được chấp nhận. Để đăng nhập từ các máy khác, bạn phải giữ khóa máy chủ, thường được lưu trữ trong /etc/ssh, tên tệp là ssh_host_*(một số tệp cho các thuật toán khác nhau).
rexkogitans

2
Lưu ý rằng nếu bạn đang sshing trong , bạn có thể muốn xoay loạt phím anyway; nhưng điều này phụ thuộc vào tình huống quản lý khóa của bạn (ví dụ: các khóa được tạo lần cuối cách đây nhiều năm và bạn chưa có /etc/ssh/ssh_host_ed25519_keyhoặc bạn có khóa RSA 1024 hoặc thậm chí là khóa DSS).
Piskvor
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.