Làm thế nào để bắt đầu và sử dụng ssh-agent làm dịch vụ systemd?


14
  1. Làm thế nào để bắt đầu ssh-agent như dịch vụ systemd ? Có một số gợi ý trong mạng, nhưng chúng không đầy đủ.

  2. Làm cách nào để thêm khóa tự động không được mã hóa nếu dịch vụ ssh-agent được khởi động thành công? Có lẽ, thêm khóa từ danh sách ~/.ssh/.session-keyssẽ tốt.

  3. Làm thế nào để thiết lập SSH_AUTH_SOCKtrong bất kỳ phiên đăng nhập sau đó? Cách chính xác nhất là đẩy nó từ dịch vụ ssh-agent sang dịch vụ logind systemd (không biết nếu có thể). Cách đơn giản ngây thơ chỉ là thêm nó vào /etc/profile.


Những gì còn thiếu từ các đề xuất trên mạng?
Mark Stosberg

Câu trả lời:


23

Để tạo một dịch vụ ssh-agent systemd, bạn cần tạo một tệp ~/.config/systemd/user/ssh-agent.servicevì ssh-agent bị người dùng cô lập.

[Unit]
Description=SSH key agent

[Service]
Type=simple
Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket
ExecStart=/usr/bin/ssh-agent -D -a $SSH_AUTH_SOCK

[Install]
WantedBy=default.target

Thêm SSH_AUTH_SOCK DEFAULT="${XDG_RUNTIME_DIR}/ssh-agent.socket"vào ~/.pam_environment.

Cuối cùng kích hoạt và bắt đầu dịch vụ này.

systemctl --user enable ssh-agent
systemctl --user start ssh-agent

Và, nếu bạn đang sử dụng phiên bản ssh cao hơn 7.2. echo 'AddKeysToAgent yes' >> ~/.ssh/config

Điều này sẽ hướng dẫn máy khách ssh luôn thêm khóa vào một tác nhân đang chạy, do đó không cần phải thêm ssh trước đó.

Lưu ý rằng khi bạn tạo ~/.ssh/configtệp bạn có thể cần chạy:

chmod 600 ~/.ssh/config hoặc là chown $USER ~/.ssh/config

Nếu không, bạn có thể nhận được Bad owner or permissions on ~/.ssh/configlỗi.


launchdtrên OS X được thiết lập để khởi động ssh-agent khi truy cập ổ cắm Unix (và SSH_AUTH_SOCKbiến được cài sẵn đường dẫn ...) (như inetd, nhưng ổ cắm Unix). Điều này dường như có thể với systemdlà tốt. (Liệu dịch vụ toàn hệ thống có phải là tùy chọn cho dịch vụ theo người dùng hay không có thể thú vị để xem ....)
Gert van den Berg

Tôi nhận được Failed to execute operation: Process org.freedesktop.systemd1 exited with status 1khi chạy systemctl --user enable ssh-agenttrên centos7
Scarba05

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.