Synopsis
ssh-agent [-c | -s] [-DdTU] [-a bind_address] [-E fingerprint_hash] [-O option]
[-P allowed_providers] [-t life]
ssh-agent [-TU] [-a bind_address] [-E fingerprint_hash] [-O option] [-P allowed_providers]
[-t life] command [arg ...]
ssh-agent [-c | -s] -k
ssh-agent -u
Description
ssh-agent, açık anahtar (public key) kimlik doğrulaması için kullanılan özel anahtarları (private keys) tutan bir programdır. Çevre değişkenleri (environment variables) kullanılarak aracının yeri belirlenebilir ve ssh(1) kullanarak diğer makinelere giriş yaparken kimlik doğrulaması için otomatik olarak kullanılabilir.
Seçenekler aşağıdaki gibidir:
-a bind_address Aracıyı UNIX-domain soketi bind_address değerine bağlar. Varsayılan davranış, $HOME/.ssh/agent/s.* kalıbıyla eşleşen rastgele bir yolda soket oluşturmaktır.
-c: Standart çıktıya C-shell komutları üretir. SHELL bir csh tarzı kabuğa benziyorsa varsayılan davranış budur.-D: Ön plan (foreground) modu. Bu seçenek belirtildiğinde ssh-agent çatallanmaz (fork).-d: Hata ayıklama (debug) modu. Bu seçenek belirtildiğinde ssh-agent çatallanmaz ve hata ayıklama bilgilerini standart hata çıktısına yazar.
-E fingerprint_hash Anahtar parmak izlerini görüntülerken kullanılan karma (hash) algoritmasını belirtir. Geçerli seçenekler: “md5” ve “sha256”’dır. Varsayılan değer “sha256”’dır.
-k: Mevcut aracıyı (SSH_AGENT_PID çevre değişkeni tarafından verilen) sonlandırır (kill).
-O option ssh-agent başlatılırken bir seçenek belirtir. Desteklenen seçenekler şunlardır: allow-remote-pkcs11, no-restrict-websafe ve websafe-allow.
allow-remote-pkcs11 seçeneği, yönlendirilmiş (forwarded) bir ssh-agent istemcilerinin PKCS#11 veya FIDO sağlayıcı kütüphanelerini yüklemesine izin verir. Varsayılan olarak yalnızca yerel istemciler bu işlemi gerçekleştirebilir. Bir ssh-agent istemcisinin uzak olduğunu işaret etme işleminin ssh(1) tarafından gerçekleştirildiğini ve aracı soketine erişimi yönlendirmek için diğer araçların kullanılmasının bu kısıtlamayı atlatabileceğini unutmayın.
no-restrict-websafe seçeneği, ssh-agent'a web kimlik doğrulama istekleri olabilecek FIDO anahtarlarını kullanarak imzalara izin vermesini söyler. Varsayılan olarak ssh-agent, anahtar uygulama dizesinin “ssh:” ile başlamadığı ve imzalanacak verilerin bir ssh(1) kullanıcı kimlik doğrulama isteği veya bir ssh-keygen(1) imzası gibi görünmediği durumlarda FIDO anahtarları için imza isteklerini reddeder. Varsayılan davranış, bir FIDO anahtarına yönlendirilmiş erişimin web sitelerinde kimlik doğrulama yeteneğini de örtük olarak yönlendirmesini önler.
Alternatif olarak websafe-allow seçeneği, varsayılan uygulama izin listesinin (allow-list) yerine geçecek bir anahtar uygulama dizeleri örüntü listesi (pattern-list) belirtilmesine olanak tanır, örneğin: “websafe-allow=ssh:,example.org,.example.com”
Örüntü listesi sözdiziminin açıklaması için ssh_config(5) içindeki PATTERNS bölümüne bakın.
-P allowed_providers ssh-add(1) aracına -S veya -s seçenekleriyle birlikte kullanılabilen PKCS#11 sağlayıcısı ve FIDO kimlik doğrulayıcı ara katman yazılımı paylaşılan kütüphaneleri için kabul edilebilir yolların bir örüntü listesini belirtir. Örüntü listesiyle eşleşmeyen kütüphaneler reddedilecektir. Varsayılan liste “usr/lib*/,/usr/local/lib/*” şeklindedir.
Örüntü listesi sözdiziminin açıklaması için ssh_config(5) içindeki PATTERNS bölümüne bakın.
-s: Standart çıktıya Bourne shell komutları üretir. SHELL bir csh tarzı kabuğa benzemiyorsa varsayılan davranış budur.-T: Aracı soketini, varsayılan $HOME/.ssh/agent/s.* kalıbıyla eşleşen rastgele bir ad kullanma davranışı yerine $TMPDIR/ssh-XXXXXXXXXX/agent.biçiminde rastgele seçilmiş bir alt dizine bağlar.
-t life Aracıay eklenen kimliklerin maksimum ömrü için varsayılan bir değer ayarlar. Ömür saniye cinsinden veya sshd_config(5) içinde belirtilen bir zaman biçiminde belirtilebilir. ssh-add(1) ile bir kimlik için belirtilen ömür bu değeri geçersiz kılar. Bu seçenek olmadan varsayılan maksimum ömür sonsuzdur.
-U: ssh-agent'a $HOME/.ssh/agent/ altındaki eski (stale) aracı soketlerini temizlememesini söyler.-u: ssh-agent'a yalnızca $HOME/.ssh/agent/ altındaki eski aracı soketlerini temizlemesini ve ardından hemen çıkış yapmasını söyler. Bu seçenek iki kez verilirse, ssh-agent bunları oluşturan ana bilgisayar adına bakılmaksızın eski aracı soketlerini silecektir.
command [arg ...] Bir komut (ve isteğe bağlı bağımsız değişkenler) verilirse, bu komut aracının bir alt süreci (subprocess) olarak yürütülür. Komut satırında verilen komut sonlandığında aracı da otomatik olarak çıkış yapar.
Bir aracıyı kurmanın üç ana yolu vardır. Birincisi, diğer tüm pencerelerin veya programların ssh-agent programının çocukları olarak başlatıldığı bir X oturumunun başlangıcındadır. Aracı, çevre değişkenlerinin dışa aktarıldığı bir komut başlatır, örneğin ssh-agent xterm &. Komut sonlandığında aracı da sonlanır.
İkinci yöntem bir oturum açma oturumu (login session) için kullanılır. ssh-agent başlatıldığında, çevre değişkenlerini ayarlamak için gereken kabuk komutlarını yazdırır; bu komutlar da çağıran kabukta değerlendirilebilir (evaluate), örneğin eval ssh-agent -s.
Bu durumların her ikisinde de ssh(1) bu çevre değişkenlerine bakar ve aracıyla bir bağlantı kurmak için bunları kullanır.
ssh-agent'ı çalıştırmanın üçüncü yolu, systemd gibi bir denetleyici süreçten soket aktivasyonu (socket activation) aracılığıyladır. Bu modda denetleyici süreç dinleme soketini oluşturur, gerektiğinde ssh-agent'ı başlatmaktan ve ayrıca soket dinleyicisinin konumunu kullanıcının oturumundaki diğer programlara iletmekten sorumludur. Soket aktivasyonu, ssh-agent -d veya -D bayraklarından biriyle başlatıldığında, -a bayrağıyla hiçbir soket dinleme adresi belirtilmediğinde ve hem LISTEN_FDS hem de LISTEN_PID çevre değişkenleri denetleyici süreç tarafından doğru şekilde sağlandığında kullanılır.
Aracı başlangıçta herhangi bir özel anahtara sahip değildir. Anahtarlar, ssh-add(1) kullanılarak veya ssh_config(5) içinde AddKeysToAgent ayarlandığında ssh(1) tarafından eklenir. Birden fazla kimlik ssh-agent içinde eşzamanlı olarak saklanabilir ve varsa ssh(1) bunları otomatik olarak kullanacaktır. ssh-add(1) ayrıca ssh-agent'tan anahtarları kaldırmak ve içinde tutulan anahtarları sorgulamak için kullanılır.
ssh-agent bağlantıları, ssh(1)'e ait -A seçeneği kullanılarak (ancak oradaki uyarılara bakın) daha uzak ana bilgisayarlardan yönlendirilebilir, böylece kimlik doğrulama verilerinin diğer makinelerde saklanması ihtiyacı ortadan kalkar. Kimlik doğrulama parolaları (passphrases) ve özel anahtarlar asla ağ üzerinden gitmez: aracı bağlantısı SSH uzak bağlantıları üzerinden yönlendirilir ve sonuç talep edene geri döndürülür, bu da kullanıcının ağın herhangi bir yerinde kimliklerine güvenli bir şekilde erişmesini sağlar.
ssh-agent, SIGUSR1 sinyalini aldığında yüklediği tüm anahtarları silecektir.
Environment
SSH_AGENT_PID ssh-agent başladığında, aracının süreç kimliğinin (PID) adını bu değişkende saklar.
SSH_AUTH_SOCK ssh-agent başladığında, bir UNIX-domain soketi oluşturur ve bunun yol adını bu değişkende saklar. Bu sokete yalnızca geçerli kullanıcı erişebilir, ancak root veya aynı kullanıcının başka bir örneği tarafından kolayca kötüye kullanılabilir.
Files
$HOME/.ssh/agent/s.* Kimlik doğrulama aracısına olan bağlantıyı içeren UNIX-domain soketleri. Bu soketler yalnızca sahibi tarafından okunabilir olmalıdır. Soketler, aracı çıktığında otomatik olarak kaldırılmalıdır.
See Also
ssh(1), ssh-add(1), ssh-keygen(1), ssh_config(5), sshd(8)
Authors
OpenSSH, Tatu Ylonen tarafından sunulan orijinal ve ücretsiz ssh 1.2.12 sürümünün bir türevidir. Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt ve Dug Song birçok hatayı gidermiş, daha yeni özellikleri yeniden eklemiş ve OpenSSH'yi oluşturmuşlardır. Markus Friedl, SSH protokolü 1.5 ve 2.0 sürümleri için destek katkısında bulunmuştur.
macOS 26.4 October 4, 2025 macOS 26.4