Bagaimana cara memulai ssh-agent sebagai layanan systemd ? Ada beberapa saran di internet, tetapi tidak lengkap.
Bagaimana cara menambahkan kunci yang tidak terenkripsi secara otomatis jika layanan ssh-agent berhasil dimulai? Mungkin, menambahkan kunci dari daftar
~/.ssh/.session-keys
akan bagus.Bagaimana cara mengatur
SSH_AUTH_SOCK
sesi login setelahnya? Cara yang paling benar adalah dengan mendorongnya dari layanan ssh-agent ke layanan systemd-logind (tidak tahu apakah itu mungkin). Cara polos naif hanya menambahkannya/etc/profile
.
15
Jawaban:
Untuk membuat layanan systemd ssh-agent, Anda perlu membuat file
~/.config/systemd/user/ssh-agent.service
karena ssh-agent diisolasi oleh pengguna.Tambahkan
SSH_AUTH_SOCK DEFAULT="${XDG_RUNTIME_DIR}/ssh-agent.socket"
ke~/.pam_environment
.Akhirnya aktifkan dan mulai layanan ini.
Dan, jika Anda menggunakan versi ssh lebih tinggi dari 7.2.
echo 'AddKeysToAgent yes' >> ~/.ssh/config
Ini akan menginstruksikan klien ssh untuk selalu menambahkan kunci ke agen yang sedang berjalan, jadi tidak perlu menambahkan ssh terlebih dahulu.
Perhatikan bahwa saat Anda membuat
~/.ssh/config
file, Anda mungkin harus menjalankan:chmod 600 ~/.ssh/config
atauchown $USER ~/.ssh/config
Kalau tidak, Anda mungkin menerima
Bad owner or permissions on ~/.ssh/config
kesalahan.sumber
launchd
pada OS X diatur untuk memulai ssh-agent ketika soket Unix diakses (danSSH_AUTH_SOCK
variabel sudah diisi sebelumnya dengan path ...) (sepertiinetd
, tetapi soket Unix). Ini sepertinya juga mungkinsystemd
. (Apakah layanan sistem-lebar merupakan pilihan untuk layanan per-pengguna mungkin menarik untuk dilihat ....)Failed to execute operation: Process org.freedesktop.systemd1 exited with status 1
ketika saya berlarisystemctl --user enable ssh-agent
pada centos7Ini tidak didukung jika Anda menggunakan centos 7 karena tidak akan mendukung
--user
benderasystemctl
. Lihat laporan bug centos ini, Dukungan Pengguna Systemd Rusak Saat Pengirimansumber