Sử dụng cùng một khóa riêng SSH trên nhiều máy


23

Tôi đã có một repo Github mà tôi muốn truy cập từ hai máy Linux khác nhau.

Đối với máy đầu tiên, tôi đã làm theo hướng dẫn của Github để tạo khóa SSH và thêm khóa công khai kết quả vào Github. Khách hàng này hoạt động tốt.

Đối với khách hàng thứ hai, tôi đã sao chép /home/{user}/.ssh/id_rsatệp từ máy khách đầu tiên. Tôi nghĩ rằng đây có thể là tất cả những gì tôi phải làm, nhưng khi tôi cố gắng kết nối, tôi nhận được 'Quyền bị từ chối (khóa công khai).'

Tôi đang thiếu gì?

Câu trả lời:


32

Khóa SSH giống nhau sẽ có thể được sử dụng từ nhiều khách hàng. Tôi có các khóa SSH khác nhau cho các mạng khác nhau và chúng thực sự được lưu trữ trên một ổ USB được mã hóa mà tôi sử dụng từ một số máy tính khác nhau mà không gặp vấn đề gì.

SSH rất kén chọn quyền truy cập tệp, vì vậy trước tiên tôi sẽ kiểm tra tất cả các quyền từ chính tệp /home/{user}xuống id_rsa.

SSH không thực sự quan tâm đến quyền ghi nhóm hoặc thế giới, vì vậy hãy đảm bảo rằng chmod go-wthư mục chính của bạn và ~/.sshthư mục dành cho người mới bắt đầu. Tôi cũng chắc chắn rằng họ thuộc sở hữu của người dùng của bạn chown ${USER}:${USER}.

Đối với khóa SSH, chính chmod 600họ ...

Nếu bạn muốn tôi có thêm thông tin về cách tôi quản lý các khóa SSH của mình trong câu trả lời cho câu hỏi SSH khác.


3
Đó là quyền - Không có đại diện để nâng cấp nhưng cảm ơn rất nhiều
Yarin

6

Nếu bạn nhận được sự cho phép từ chối của Github, có thể đó không phải là lấy tệp khóa SSH đã sao chép của bạn, mà là mặc định của hệ thống. Một cách dễ dàng để làm điều này là tạo một ~/.ssh/configtập tin tuyệt vời và đặt những thứ sau vào đó:

Host github.com
  Hostname      github.com
  User          git
  IdentityFile  ~/.ssh/yourkeyfile

Điều này sẽ buộc ứng dụng khách SSH của bạn chỉ sử dụng khóa đó cho github.com.

Hi vọng điêu nay co ich.


2
Đừng có đại diện để nâng cấp nhưng cảm ơn
Yarin

1

Tôi biết điều này đã cũ, nhưng tôi nghĩ rằng tôi cũng cần phải sao chép khóa công khai sang máy khách thứ hai

(hoặc tính toán lại với ssh-keygen -y -f ~ / .ssh / id_rsa_ ..> ~ / .ssh / id_rsa ... pub)

Từ 1]:

  1. Phương thức xác thực khóa công khai: "khóa công khai"

    Xác thực 'tên phương thức' duy nhất BẮT BUỘC là
    xác thực "khóa công khai" . Tất cả các triển khai PHẢI hỗ trợ phương pháp này;
    tuy nhiên, không phải tất cả người dùng cần phải có khóa chung và hầu hết các
    chính sách cục bộ không có khả năng yêu cầu xác thực khóa chung cho tất cả
    người dùng trong tương lai gần.

    Với phương pháp này, việc sở hữu một khóa riêng đóng vai trò
    xác thực. Phương pháp này hoạt động bằng cách gửi chữ ký được tạo
    bằng khóa riêng của người dùng. Máy chủ PHẢI kiểm tra xem khóa
    có phải là trình xác thực hợp lệ cho người dùng không và PHẢI kiểm tra xem
    chữ ký có hợp lệ không. Nếu cả hai giữ, yêu cầu xác thực PHẢI được
    chấp nhận; nếu không, nó PHẢI bị từ chối. Lưu ý rằng máy chủ CÓ THỂ
    yêu cầu xác thực bổ sung sau khi xác thực thành công.

Máy khách ssh của bạn bắt đầu xác thực bằng cách gửi khóa chung (chữ ký được in đậm ở trên) đến máy chủ. Máy chủ, nếu khóa chung là khóa được ủy quyền, sẽ gửi ID phiên ngẫu nhiên trở lại máy khách của bạn. Sau đó, khách hàng của bạn mã hóa ID phiên đó bằng khóa riêng và gửi lại cho máy chủ. Máy chủ giải mã ID phiên đó bằng khóa chung và nếu nó khớp với ID phiên ban đầu, thì xác thực ứng dụng khách của bạn.

[1] [ http://www.openssh.org/txt/rfc4252.txt[[1]


0

Có thể là do bạn đã không sao chép quyền của tệp trên máy khách thứ hai.
Nhưng khóa riêng là riêng tư , cách đúng đắn là tạo khóa riêng mới trên máy khách thứ hai và sau đó thêm khóa chung của nó vào Github


Tôi đã lên kế hoạch thực hiện 1 khóa cho mỗi người dùng trên mỗi máy khách khác nhau của người dùng. Nhưng một cặp khóa cho mỗi khách hàng của mỗi người dùng dường như sẽ vượt quá tầm kiểm soát ...?
Yarin

Nếu bạn sử dụng cùng một khóa riêng cho từng người dùng trên mỗi máy thì có vẻ ổn. Chỉ cần kiểm tra quyền nếu bạn sao chép bằng scp với cờ -p thì mọi thứ sẽ ổn
bán kính
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.