วิธีเริ่มและใช้ ssh-agent เป็น systemd service?


15
  1. วิธีการเริ่มssh-agentเป็นบริการsystemd ? มีคำแนะนำบางอย่างในเน็ต แต่พวกเขายังไม่สมบูรณ์

  2. วิธีเพิ่มคีย์ที่ไม่เข้ารหัสโดยอัตโนมัติหากบริการssh-agentเริ่มต้นได้สำเร็จ อาจเป็นการเพิ่มคีย์จากรายการ~/.ssh/.session-keysจะดี

  3. วิธีการตั้งค่าSSH_AUTH_SOCKในเซสชั่นการเข้าสู่ระบบใด ๆ หลังจากนั้น? วิธีที่ถูกต้องที่สุดคือการส่งจากบริการssh-agentไปยังบริการsystemd-logind (ไม่ทราบว่าเป็นไปได้หรือไม่) /etc/profileวิธีที่ไร้เดียงสาธรรมดาเป็นเพียงการเพิ่มเข้าไป


สิ่งที่ขาดหายไปจากคำแนะนำในเน็ต
Mark Stosberg

คำตอบ:


25

ในการสร้างบริการ systemd ssh-agent คุณต้องสร้างไฟล์~/.config/systemd/user/ssh-agent.serviceเพราะ ssh-agent แยกผู้ใช้

[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

เพิ่มไปSSH_AUTH_SOCK DEFAULT="${XDG_RUNTIME_DIR}/ssh-agent.socket"~/.pam_environment

ในที่สุดเปิดใช้งานและเริ่มบริการนี้

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

และถ้าคุณใช้เวอร์ชั่น ssh สูงกว่า 7.2 echo 'AddKeysToAgent yes' >> ~/.ssh/config

สิ่งนี้จะแนะนำให้ไคลเอ็นต์ ssh เพิ่มคีย์ไปยังเอเจนต์ที่กำลังทำงานอยู่เสมอดังนั้นจึงไม่จำเป็นต้องเพิ่ม ssh ไว้ล่วงหน้า

โปรดทราบว่าเมื่อคุณสร้าง~/.ssh/configไฟล์คุณอาจต้องเรียกใช้:

chmod 600 ~/.ssh/config หรือ chown $USER ~/.ssh/config

มิฉะนั้นคุณอาจได้รับBad owner or permissions on ~/.ssh/configข้อผิดพลาด


launchdบน OS X ถูกตั้งค่าให้เริ่มต้น ssh-agent เมื่อเข้าถึงซ็อกเก็ต Unix (และSSH_AUTH_SOCKตัวแปรนั้นได้รับการเสริมด้วยพา ธ ... ) (เหมือนinetdแต่ซ็อกเก็ต Unix) ดูเหมือนว่าจะเป็นไปได้systemdเช่นกัน (ไม่ว่าจะเป็นบริการทั่วทั้งระบบเป็นตัวเลือกสำหรับบริการต่อผู้ใช้อาจจะน่าสนใจที่จะเห็น .... )
Gert van den Berg

ฉันได้รับFailed to execute operation: Process org.freedesktop.systemd1 exited with status 1เมื่อฉันวิ่งsystemctl --user enable ssh-agentบน centos7
scarba05

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.