làm cho ssh lưu trữ toàn cầu cho tất cả người dùng trên máy tính


15

Vì vậy, SSH có các tệp này định cấu hình cài đặt cho một người dùng cụ thể.

~/.ssh/authorized_keys
~/.ssh/config
~/.ssh/id_rsa
~/.ssh/id_rsa.pub
~/.ssh/known_hosts

Tôi muốn toàn cầu hóa một số các tệp này, như configknown_hosts. Để những người dùng khác (bao gồm cả root ) có thể chia sẻ các máy chủ được cấu hình.

cách nào tốt nhất để làm việc này?

Câu trả lời:


21

Để ~/.ssh/configbạn có thể đặt các cài đặt toàn hệ thống có liên quan trong / etc / ssh / ssh_config theo trang man :

ssh (1) có được dữ liệu cấu hình từ các nguồn sau theo thứ tự sau:

  1. tùy chọn dòng lệnh
  2. tập tin cấu hình của người dùng (~ / .ssh / config)
  3. Tệp cấu hình toàn hệ thống (/ etc / ssh / ssh_config)

Đối với mỗi tham số, giá trị thu được đầu tiên sẽ được sử dụng. Các tệp cấu hình chứa các phần được phân tách bằng thông số kỹ thuật của Host Host, và phần đó chỉ được áp dụng cho các máy chủ khớp với một trong các mẫu được đưa ra trong thông số kỹ thuật.

Lưu ý rằng chỉ có giá trị đầu tiên sẽ được sử dụng, điều đó có nghĩa là người dùng luôn có thể ghi đè các tùy chọn cấu hình trên toàn hệ thống cục bộ.

Để ~/.ssh/known_hostsbạn có thể sử dụng /etc/ssh/ssh_known_hostshoặc một tệp khác được chỉ định bởi tùy chọn cấu hình GlobalKnownhostsFile:

GlobalKnownhostsFile

Chỉ định một tệp để sử dụng cho cơ sở dữ liệu khóa máy chủ toàn cầu thay vì / etc / ssh / ssh_ Unknown_hosts.

Tôi không chắc liệu các tệp khác có khả thi hay không, nhưng tôi tưởng tượng bạn có thể làm việc gì đó với symlink nếu bạn thực sự muốn chia sẻ khóa riêng giữa những người dùng.


1
Bạn đã có một lỗi đánh máy trong trích dẫn GlobalKnownhostsFile của bạn.
cjm

1
Bạn có thể đặt UserKnownhostsFile = / dev / null ssh sẽ không bao giờ tìm thấy khóa hợp lệ bên trong tệp người dùng know_hosts nhưng người dùng vẫn có thể chấp nhận tạm thời.
JANNING

1
@Janning, có vẻ như thực sự có một IgnoreUserKnownHoststùy chọn cho điều đó (giá trị yeshoặc no).
kael

Lưu ý rằng /etc/ssh/ssh_known_hoststệp toàn cầu phải có thể đọc được trên thế giới. Tôi đã sử dụng ssh-keygen -Hf /etc/ssh/ssh_known_hostsđể kiểm tra lại của tôi sau khi thêm các mục nhập thủ công và có vẻ như nó đang được đặt thành chỉ dành cho chủ sở hữu.
kael

1

Vì root là tất cả mạnh mẽ, tôi sẽ sử dụng một công việc cron gốc để sao chép các tệp từ người dùng khác. Các máy chủ đã biết và các khóa được ủy quyền có thể được thêm vào. Nếu tất cả nằm trên một phân vùng thì có tùy chọn liên kết cứng. Không chắc chắn nếu symlink sẽ hoạt động cho các tệp, nhưng bạn cũng có thể thử điều đó, bạn chỉ cần đặt chúng vào một nơi an toàn nhưng được chia sẻ.


2
Nó sẽ ngăn người dùng thêm các máy chủ của riêng họ mà IMHO không có tác dụng.
Maciej Piechotka

Tôi quên nếu một tập tin hardlink phải có cùng perm nhưng tôi nghi ngờ nó có. Tuy nhiên, bạn có thể sao chép tệp bằng cron và sau đó đảm bảo các perms là chính xác.
xenoterracide
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.