Làm cách nào để xuất khóa công khai SSH của tôi?


12

Tôi cần thiết lập các phiên ssh giữa hai máy chủ và không muốn làm cho tập lệnh điền tên người dùng và mật khẩu mọi lúc.

Tuy nhiên tôi dường như không thể tìm ra máy chủ SSH đang sử dụng cấu hình của nó từ đâu.

bash-2.05# ssh -V
Sun_SSH_1.1, SSH protocols 1.5/2.0, OpenSSL 0x0090700f

Tôi có tệp tệp chứng chỉ trong cả / etc / ssh / và ~ / .ssh /. Tôi chỉ có thể tìm thấy một tệp cấu hình cho SSH và nó nằm trong / etc / ssh / ssh_config, nhưng nó không chứa dữ liệu (mọi thứ đều được nhận xét).

Có ai biết làm thế nào tôi có thể tìm ra nơi chứng chỉ được lưu trữ, hoặc làm thế nào tôi có thể xuất nó để tôi có thể chuyển nó sang máy chủ khác không? Tôi đã hy vọng các tập tin cấu hình sẽ cho tôi câu trả lời, nhưng chúng cung cấp rất ít để không giúp đỡ.

Câu trả lời:


17

Giả sử bạn có nghĩa là xác thực khóa công khai ở cấp độ người dùng theo 'chứng chỉ' và bạn đã tạo chúng bằng cách sử dụng ssh-keygenvới vị trí mặc định, chúng sẽ ở vị trí mà ssh-client của bạn sẽ tìm thấy chúng. Khóa này bao gồm một phần riêng tư, thường được lưu trữ ~/.ssh/id_rsavà một phần công khai trong ~/.ssh/id_rsa.pub. Cái cuối cùng sẽ phải được chuyển đến máy chủ từ xa, thường là ~/.ssh/authorized_keys.

Cách dễ nhất để chuyển khóa sang máy chủ khác là sử dụng ssh-copy-idvới máy đích. Nếu bạn đã sử dụng vị trí mặc định khi tạo, phím này sẽ tự động được sử dụng.

Lưu ý, đó /etc/ssh/ssh_configlà cho khách hàng. Trên máy chủ, bạn sẽ phải xem xét /etc/ssh/sshd_config. Trong thiết lập của bạn, cả hai máy chủ sẽ đóng vai trò là cả ssh-client và ssh-server, vì vậy bạn sẽ phải xem cả hai tệp ở cả hai đầu.


Nó đã làm việc Cảm ơn bạn. Điều duy nhất tôi phải làm thêm là trên máy khách của mình, tôi phải chỉ định tham số -i (danh tính) chỉ vào khóa riêng.
Chris Dale

2

Bạn cần tìm khóa công khai ssh cho người dùng sẽ là người dùng đăng nhập cho tập lệnh.

Ví dụ: Nếu tôi có serverA và serverB, tôi sẽ làm như sau.

sudo adduser scriptrunner
...
sudo su - scriptrunner
ssh-keygen
...
cat .ssh/id_rsa.pub
ssh-rsa AAAAB3Nza...... scriptrunner@serverA

sau đó làm một cái gì đó tương tự trên ServerB

Sau đó, trên serverA, hãy khóa khóa công khai của người dùng scriptslner của serverB vào /home/scriptrunner/.ssh/authorized_keys

và làm ngược lại trên serverB (sử dụng người dùng scriptslner của serverA trên vào ủy /home/scriptrunner/.ssh/authorized_keysquyền_key trên serverB)

Sau đó, bạn sẽ có thể thực hiện ssh scriptrunner@serverAtừ serverB bằng cách sử dụng khóa và ngược lại.

Bạn cũng có thể sử dụng ssh-copy-idđể thực hiện bit ủy quyền.


1

Để thiết lập kết nối ssh với xác thực khóa chung, người dùng khởi tạo kết nối cần phải có cặp khóa chung / riêng. Trên nhiều bản phân phối linux, các khóa này không được tạo theo mặc định và phải được tạo bởi chính người dùng (hoặc bởi người quản trị thay mặt họ).

Nếu bạn đã đăng nhập với tư cách là người dùng có liên quan, hãy truy cập thư mục chính của bạn và chạy

ssh-keygen

Chấp nhận tất cả các giá trị mặc định và một cặp khóa mới sẽ được tạo trong ~ / .ssh / id_rsa và ~ / .ssh / id_rsa.pub. Bây giờ sao chép khóa công khai và dán nó vào tệp ~ / .ssh / ủy quyền của tài khoản người dùng đích trên máy đích. Sau đó kích hoạt xác thực khóa công khai trên máy đích (in / etc / ssh / sshd_config) và bạn nên đi tiếp.

LƯU Ý : có nhiều cạm bẫy có thể xảy ra trong quá trình này khi bạn thực hiện lần đầu tiên. Tất cả các quyền phải chính xác và các tệp phải ở đúng nơi. Có lẽ tốt nhất nếu bạn theo dõi một HowTo như thế này .

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.