2011-08-09 30 views
27

Tôi nhớ có một lệnh để gửi khóa công khai đến máy chủ từ xa mà tôi muốn. Tôi muốn sử dụng tính năng đó để gửi một trong các khóa công khai của tôi tới máy chủ lưu trữ khác. Làm thế nào tôi có thể làm điều đó?Lệnh gửi khóa công khai tới máy chủ từ xa

Trả lời

47

Bạn đang tìm kiếm ssh-copy-id. Tất cả lệnh này làm là tạo ra .ssh.ssh/authorized_keys và đặt quyền của chúng một cách thích hợp nếu chúng không tồn tại. Sau đó, nó gắn thêm khóa công khai của bạn vào cuối .ssh/authorized_keys.

+12

Tuyệt vời. Chỉ cần chạy 'ssh-copy-id root @ server'. –

0

Câu trả lời được lựa chọn là đúng, nhưng đây là một kịch bản bash đơn giản cho bất cứ ai mà muốn kết hợp keygen + bản sao: https://gist.github.com/wilcollins/bc420581da87962b8b47

Tập tin này tạo ra một chìa khóa SSH trên một máy khách hàng, áp dụng các điều khoản tệp thích hợp, bản sao vào thư mục ~/.ssh cục bộ, & các bản sao đến máy chủ được chỉ định.

+0

Chỉ cần liên kết đến nội dung của riêng bạn là [không phải là câu trả lời hay] (// stackoverflow.com/help/promotion). Câu trả lời hay có liên quan đến tài nguyên ngoài trang web bao gồm thông tin liên quan ngay trong câu trả lời và tham khảo những điều sau đây: Bạn đang nói về điều gì? Tôi cài đặt nó ở đâu? Làm thế nào để cài đặt nó? Làm thế nào để sử dụng điều này để giải quyết ** vấn đề chính xác ** Tôi có trong câu hỏi của tôi? Bạn có liên kết với điều này trong bất kỳ cách nào, hình dạng, hoặc hình thức? Xem: [Làm cách nào để liên kết với tài nguyên bên ngoài theo cách thân thiện với cộng đồng?] (// meta.stackexchange.com/questions/94022) – Mogsdad

+0

"Tệp này tạo khóa SSH trên máy khách, áp dụng các quyền đối với tệp thích hợp , sao chép vào thư mục ~/.ssh cục bộ và sao chép vào máy chủ được chỉ định. " & cách sử dụng được bao gồm trong các nhận xét của tài nguyên được cung cấp.Đây là một lệnh gửi một khóa công khai đến một máy chủ từ xa giống như câu hỏi yêu cầu, cùng với việc tạo khóa đã nói trước đó – wilco

8

Bạn có thể tìm kiếm lệnh này:

cat ~/.ssh/id_rsa.pub | ssh [email protected] 'cat >> .ssh/authorized_keys' 

Nó gắn thêm khóa công khai của bạn đến các máy chủ ủy quyền phím.

Source

+0

Điều này dễ di chuyển hơn câu trả lời được chấp nhận, vì không phải tất cả các hệ thống (tôi đang nhìn bạn, OS X) 'ssh-copy-id'. Mặc dù, cá nhân, tôi muốn sửa đổi nó một chút để 'cat ~/.ssh/id_rsa.pub | ssh user @ hostname 'tee -a .ssh/authorized_keys'', nhưng đó chỉ là sở thích cá nhân. –

+1

Có vẻ như ssh-copy-id là một phần của MacOS Sierra, rất hay. – Graham

1

Nếu máy chủ của bạn đã được thiết lập để not accept password-based login, bạn có thể nhận được một lỗi Permission denied (publickey).

Đây là một phương pháp khác để gửi khóa, sử dụng netcat, vì vậy bạn không phải xác thực. Nó sẽ chỉ hoạt động trên một mạng cục bộ, nhưng bạn có thể sử dụng cổng chuyển tiếp để thực hiện điều này qua internet.

Trên máy chủ:

$ nc -l 55555 >> ~/.ssh/authorized_keys 

Trên máy khách (thay thế HOSTNAME với hostname hoặc IP của máy chủ):

$ nc HOSTNAME 55555 < ~/.ssh/id_rsa.pub 

Bạn có thể thay 55555 với một cổng mở của sự lựa chọn của bạn.

nguồn: chat over lan from linux to linux?


Phụ lục cho tổng newbies: Tôi không nghĩ rằng bất cứ ai đề cập này, nhưng nếu bạn nhận được ERROR: failed to open ID file '/home/username/.pub': No such file, bạn cần phải tạo ra một chìa khóa đầu tiên. Các trang trợ giúp của Ubuntu có hướng dẫn tuyệt vời về số Generating RSA Keys.

Các vấn đề liên quan