Làm cách nào để chuyển khóa SSH của tôi sang máy khác?


42

Tôi có tài khoản trên hai máy: H1 và H2. Tôi đã tạo các khóa ssh trên H1 và cài đặt nó trên S1. Bây giờ tôi có thể ssh đến S1 từ H1. Tôi muốn làm điều tương tự từ H2. Làm cách nào để cài đặt các khóa ssh được tạo trên H1 trên H2?


2
Kể từ khi ssh-copy-idlà một kẻ ngốc chống hơn (không ghi đè các phím hiện có hoặc vô tình sao chép các tin quan trọng thay vì công key) và giải pháp ít được biết đến, hãy xem xét để chấp nhận một trong những câu trả lời là câu trả lời được chấp nhận.
bất cứ lúc nào

Câu trả lời:


28

Đã chỉnh sửa: Nếu bạn sở hữu cả hai máy, bạn có thể chia sẻ khóa riêng của mình. Nhưng giải pháp này không an toàn cho trường hợp máy tính xách tay bị đánh cắp hoặc cho các máy bạn không sở hữu.

Bạn có thể sao chép khóa riêng của mình từ H1 sang H2, nếu bạn muốn sử dụng cùng khóa riêng để có thể đăng nhập từ H2 sang S1. Khi bạn ở H1 thực hiện các lệnh:

H1$ ssh H2 mkdir ~/.ssh
H1$ scp  ~/.ssh/id_rsa ~/.ssh/id_dsa H2:~/.ssh/

Cảnh báo! Điều này sẽ xóa và thay thế bất kỳ khóa riêng nào bạn có tại H2.

Cách tốt hơn là tạo các khóa riêng mới trên H2 ( ssh-keygen) và cài đặt phần chung của chúng trên S1 với ssh-copy-id. Trong trường hợp an toàn hơn, bạn sẽ có hai bộ chìa khóa; một là cho đăng nhập H1-S1 và thứ hai cho đăng nhập H2-S1. Sẽ có hai khóa công khai được ủy quyền tại S1. Và bạn sẽ có thể thu hồi bất kỳ trong số chúng hoặc cả hai (ví dụ: khi sổ ghi chép của bạn bị đánh cắp hoặc chủ sở hữu của máy quyết định vô hiệu hóa tài khoản của bạn và sử dụng lại tất cả các tệp của bạn).


8
Sao chép một khóa riêng thực sự không phải là một ý tưởng tốt. Có một khóa duy nhất tại nhiều vị trí 1. làm cho nó dễ bị tổn thương hơn, 2. làm tăng nguy cơ bạn mất quyền kiểm soát tất cả các vị trí, 3. không cho phép bạn vô hiệu hóa quyền truy cập từ chỉ một vị trí. Từ quan điểm bảo mật, bạn nên tạo một cặp khóa mới trên mọi vị trí - giải pháp từ Mu Qiao.
pabouk

27

Sử dụng ssh-copy-id

TÓM TẮC

ssh-copy-id [-i [id_file]] [user @] máy

SỰ MIÊU TẢ

ssh-copy-id là một tập lệnh sử dụng ssh để đăng nhập vào một máy từ xa và nối thêm tệp nhận dạng được chỉ định vào tệp ~ / .ssh / ủy quyền của máy đó.


1
@ Tôi muốn làm ssh từ H2 đến S1. Tôi muốn chuyển và cài đặt khóa riêng và khóa chung từ H1 sang H2. Điều này sẽ làm điều đó?
Bruce

3
@Bruce không, bạn cần tạo lại các phím trên h2 và sử dụng lệnh đó để sao chép các khóa của bạn. Một cách tiếp cận khác là để h1 và h2 chia sẻ thư mục nhà.
Mu Qiao

9

Sử dụng hai khóa riêng

Thiết lập H2 bằng cùng một quy trình (nhưng không phải cùng khóa riêng) như bạn đã làm khi thiết lập H1:

  • Không bao giờ có một lý do chính đáng để sao chép khóa riêng từ một số máy khác. Nếu bạn chưa tạo khóa riêng mới trên H2, hãy làm ngay bây giờ. Cũng tạo khóa công khai tương ứng. Trong một thiết bị đầu cuối trên H2,

kiểu: ssh-keygen -t rsa

  • Sao chép khóa công khai của H2 vào máy chủ. Trong một thiết bị đầu cuối trên H2,

kiểu: ssh-copy-id username@S1.net

(nhưng sử dụng tên người dùng thực tế của bạn trên tên máy chủ của S1 và S1 và sau đó nhập mật khẩu của bạn vào S1 khi nó yêu cầu).

Thao tác này sẽ cài đặt khóa chung của máy trạm của bạn vào ~/.ssh/authorized_keystệp cho người dùng đó trên máy chủ.

  • Không có bước 3. Từ giờ trở đi, bạn có thể đăng nhập vào S1 từ H2 của mình và cũng có thể đăng nhập vào S1 từ H1 của bạn.

chi tiết

Tôi cho rằng những gì bạn đang thực sự hỏi là

  • Tôi có một máy chủ ("S1")
  • Tôi đăng nhập vào máy chủ của mình từ máy tính xách tay cá nhân ("H1")
  • Tôi cũng muốn đăng nhập vào máy chủ của mình từ máy trạm ("H2").

Cách đúng đắn để làm điều đó là gì?

  • Tôi cho rằng tôi có thể chỉ cần đăng nhập với cùng một mật khẩu từ cả hai nơi. Đó không phải là cách đúng đắn, bởi vì mọi người đều nói rằng xác thực khóa công khai tốt hơn nhiều so với mật khẩu. (a)
  • Tôi cho rằng tôi chỉ có thể sao chép khóa riêng từ máy tính xách tay vào máy trạm. Đó không phải là cách đúng đắn, bởi vì mọi người đều nói rằng khóa riêng không bao giờ được yêu cầu rời khỏi máy khách.

Mọi người đã nhấn mạnh vào đầu họ rằng một tài khoản trên máy chủ có một tên người dùng và tất nhiên là một mật khẩu được ủy quyền.

Các hệ thống khóa công khai như ssh tốt hơn hệ thống mật khẩu: Một tài khoản trên máy chủ có một tên người dùng và bất kỳ số khóa công khai được ủy quyền nào , tất cả đều được liệt kê trong ~/.ssh/authorized_keystệp.

( chi tiết hơn ).


Hãy tha thứ cho tôi vì đã lặp lại chính mình .
David Cary

0

Ssh-copy-id sẽ thực hiện công việc cho bạn: http://linux.die.net/man/1/ssh-copy-id ?


@ Tôi muốn làm ssh từ H2 đến S1. Tôi muốn chuyển và cài đặt khóa riêng và khóa chung từ H1 sang H2. Điều này sẽ làm điều đó?
Bruce

2
Nếu bạn đã đăng nhập vào S1 hoặc H1 (hiện đã có khóa của bạn) bằng ssh-copy-id sẽ cho phép bạn chuyển khóa công khai (không riêng tư) sang H2. Nói chung, tốt nhất là giới hạn số lượng máy mà khóa riêng của bạn được cài đặt. Cố gắng giữ nó cho một vài máy an toàn chỉ để tránh mất mát.

Làm cách nào để sao chép khóa riêng của tôi sang H2?
Bruce

0

Để chuyển các khóa SSH từ máy tính này sang máy tính khác. Chỉ cần sao chép toàn bộ thư mục từ ~ / .ssh từ H1 (máy cũ) sang thư mục nội dung ~ / .ssh của máy H2 mới.

Bây giờ cố gắng:

ssh ubfox@13.123.43.26 (ip S1 của bạn)

Rất có thể bạn sẽ nhận được một cảnh báo cho phép để sửa lỗi chạy đó:

chmod 400 ~ / .ssh / id_rsa

Lại lần nữa nào:

ssh ubfox@13.123.43.26 (ip S1 của bạn)

Nó sẽ hoạt động tốt bây giờ.

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.