Có một lý do kỹ thuật tại sao ssh-agent thiếu tính năng hết thời gian không hoạt động / không hoạt động giống như sudo không?


9

Có một số cuộc thảo luận ngắn gọn về ssh-agent -ttính năng hiện có tại [1], và đã có một bài đăng từ năm 2001 về debian-devel [2] mong muốn tính năng hết thời gian không hoạt động. Có một cuộc thảo luận tương tự ở đây về SE [3] cho cuộc thi.

Tôi phải tự hỏi làm thế nào phần còn lại của hành tinh đang bảo vệ các khóa ssh - tôi có thiếu điều gì rõ ràng để điều này trở thành một điểm đau đối với tôi không, và rõ ràng không ai khác? Cụ thể tôi đang nghĩ về các tương tác ssh theo kịch bản, chẳng hạn như với ansible. Dường như ngày nay, sự lựa chọn của bạn là:

  • Đặt thời gian tồn tại của khóa trong tác nhân thành một khoảng thời gian dài đáng lo ngại, vd. 1h hoặc bất cứ mức tối đa thời gian của kịch bản của bạn chạy có thể xảy ra được (tôi nghi ngờ nhiều người cho phép thời gian chờ sudo Tái uỷ quyền của họ để căng lâu!) - nhưng seahorse/ gnome-keyring-daemonhiếm khi thậm chí hỗ trợ nhiều này [4]
  • Giữ bí mật các tập lệnh chạy dài của bạn và tiếp tục nhập lại cụm mật khẩu của bạn cứ sau 5/10/15 phút: bây giờ bạn có thể dễ dàng theo dõi nhập cụm mật khẩu của mình 20 lần một ngày
  • Hack giải pháp tự pha chế tại nhà của bạn để bắt chước tính năng còn thiếu này, có thể kết hợp với TMOUTvar shell shell của bạn (cảm ơn mọi người trên freenode #openssh IRC cho đề xuất đó)
  • Hoàn toàn không có thời gian khóa được đặt, tức là đại lý của bạn sẽ giữ khóa của bạn được tải mãi mãi hoặc cho đến khi bạn giết / khởi động lại

Nếu bạn đang sử dụng thời gian chờ đại lý ssh ngắn, cụm mật khẩu mạnh và các tệp khóa khác nhau cho từng loại vai trò mà bạn xác thực là: điều này dẫn đến một ngày rất bực bội!

Tôi đã thử nghiệm với gpgkey2ssh và thẻ thông minh, nhưng điều này không thực sự giải quyết được vấn đề cụ thể này: Tôi vẫn muốn chức năng ssh-agent và tôi không muốn phải xác thực lại sau mỗi 5 phút chỉ để ngăn các khóa riêng tư của mình bị lộ trong bộ nhớ trong khi máy tính của tôi không hoạt động.

Tôi đang làm sai à?

[1] Định cấu hình thời gian chờ mặc định cho tác nhân SSH

[2] https://lists.debian.org/debian-devel/2001/09/msg00851.html

[3] /server/518312/putty-pageant-forget-keys-after-apse-of-inactivity

[4] https://bugs.launchpad.net/ubfox/+source/gnome-keyring/+orms/129231


1
Không phải là một câu trả lời, nhưng, vâng, có một số thách thức kỹ thuật xung quanh cách phát hiện phiên không hoạt động khi ssh-agentkhông biết đến loại phiên mà nó là một phần của (ví dụ: phiên tty, phiên X11 hoặc một cái gì khác). Một điều tôi muốn nói nếu các tập lệnh tự động của bạn có lẽ không nên phụ thuộc vào khóa được tải trong đại lý của bạn. Mỗi người có lẽ nên có khóa riêng của họ, được ủy quyền thông qua các lệnh bắt buộc trên các máy chủ phù hợp để chỉ chạy các lệnh từ xa cụ thể mà mỗi tập lệnh cần chạy. Điều đó tất nhiên sẽ cho phép bạn chạy những thứ đó từ cron, v.v ...
Celada

Tôi không mong đợi ssh-agentkhi nào một phiên không hoạt động, nhưng ít nhất là bắt đầu thời gian chờ từ bất cứ khi nào hoạt động ký cuối cùng xảy ra, không chỉ bất cứ khi nào ssh-agentđược khởi chạy. Ngoài ra, tôi đã sử dụng các tài khoản người dùng và keyfiles riêng biệt cho từng vai trò tập lệnh, sudoers chỉ cho phép 1 hoặc 2 lệnh được sudo'd nếu cần và tôi đã xem xét lshellđể khóa mọi thứ hơn nữa. Nhưng tất cả những điều đó vẫn không khiến tôi không cần phải bảo vệ các keyfiles của mình: chỉ vì đây sudo zfs sendlà lệnh duy nhất được phép cho một khóa nhất định, đó là một lệnh khá mạnh mẽ cho bất kỳ ai sử dụng khóa đó!
csirac2

Một cách giải quyết khác: sử dụng ControlMaster/ ControlPath/ ControlPersisttùy chọn (xem man ssh_config) cho tập lệnh của bạn. Ít nhất nếu nó chỉ kết nối với một máy chủ.
derobert

Đó là một gợi ý thú vị và nó đã dạy tôi điều gì đó (cảm ơn!) Nhưng dường như không giải quyết được gì nếu tôi vẫn ssh-agentgiữ khóa của mình được tải cho đến khi tôi khởi động lại (có thể là vài tuần).
csirac2

Câu trả lời:


2

Nếu điều này làm bạn lo lắng thì bạn có thể dễ dàng sử dụng xscreensaver-command -watchgiao diện để chạy ssh-add -Dkhi màn hình bị khóa. Kiểm tra trang người đàn ông cho một ví dụ rất đơn giản.

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.