man/network
man · Ağ

$ ssh-keygen

Bölüm 1 ·

OpenSSH kimlik doğrulama anahtarı aracı

Özet

     ssh-keygen [-q] [-a rounds] [-b bits] [-C comment] [-f output_keyfile] [-m format]
		[-N new_passphrase] [-O option] [-t ecdsa | ecdsa-sk | ed25519 | ed25519-sk | rsa]
		[-w provider] [-Z cipher]
     ssh-keygen -p [-a rounds] [-f keyfile] [-m format] [-N new_passphrase] [-P old_passphrase]
		[-Z cipher]
     ssh-keygen -i [-f input_keyfile] [-m key_format]
     ssh-keygen -e [-f input_keyfile] [-m key_format]
     ssh-keygen -y [-f input_keyfile]
     ssh-keygen -c [-a rounds] [-C comment] [-f keyfile] [-P passphrase]
     ssh-keygen -l [-v] [-E fingerprint_hash] [-f input_keyfile]
     ssh-keygen -B [-f input_keyfile]
     ssh-keygen -D pkcs11
     ssh-keygen -F hostname [-lv] [-f known_hosts_file]
     ssh-keygen -H [-f known_hosts_file]
     ssh-keygen -K [-a rounds] [-w provider]
     ssh-keygen -R hostname [-f known_hosts_file]
     ssh-keygen -r hostname [-g] [-f input_keyfile]
     ssh-keygen -M generate [-O option] output_file
     ssh-keygen -M screen [-f input_file] [-O option] output_file
     ssh-keygen -I certificate_identity -s ca_key [-hU] [-D pkcs11_provider] [-n principals]
		[-O option] [-V validity_interval] [-z serial_number] file ...
     ssh-keygen -L [-f input_keyfile]
     ssh-keygen -A [-a rounds] [-f prefix_path]
     ssh-keygen -k -f krl_file [-u] [-s ca_public] [-z version_number] file ...
     ssh-keygen -Q [-l] -f krl_file file ...
     ssh-keygen -Y find-principals [-O option] -s signature_file -f allowed_signers_file
     ssh-keygen -Y match-principals -I signer_identity -f allowed_signers_file
     ssh-keygen -Y check-novalidate [-O option] -n namespace -s signature_file
     ssh-keygen -Y sign [-O option] -f key_file -n namespace file ...
     ssh-keygen -Y verify [-O option] -f allowed_signers_file -I signer_identity -n namespace
		-s signature_file [-r revocation_file]

Açıklama

ssh-keygen, ssh(1) için kimlik doğrulama anahtarları oluşturur, yönetir ve dönüştürür. ssh-keygen, SSH protokolü sürüm 2 tarafından kullanılmak üzere anahtarlar oluşturabilir.

Oluşturulacak anahtarın türü -t seçeneği ile belirtilir. Herhangi bir argüman olmadan çalıştırılırsa, ssh-keygen bir Ed25519 anahtarı oluşturacaktır.

ssh-keygen, Diffie-Hellman grup değişimi (DH-GEX) protokolünde kullanılacak grupları oluşturmak için de kullanılır. Ayrıntılar için MODÜL OLUŞTURMA (MODULI GENERATION) bölümüne bakın.

Son olarak, ssh-keygen, Anahtar İptal Listeleri oluşturmak ve güncellemek ile verilen anahtarların bu listeler tarafından iptal edilip edilmediğini test etmek için kullanılabilir. Ayrıntılar için ANAHTAR İPTAL LİSTELERİ (KEY REVOCATION LISTS) bölümüne bakın.

Normalde, SSH'yi açık anahtar (public key) kimlik doğrulaması ile kullanmak isteyen her kullanıcı, kimlik doğrulama anahtarını ~/.ssh/id_ecdsa, ~/.ssh/id_ecdsa_sk, ~/.ssh/id_ed25519, ~/.ssh/id_ed25519_sk veya ~/.ssh/id_rsa dizininde oluşturmak için bu aracı bir kez çalıştırır. Ek olarak, sistem yöneticisi /etc/rc dosyasında görüldüğü gibi ana bilgisayar (host) anahtarları oluşturmak için bunu kullanabilir.

Normalde bu program anahtarı oluşturur ve özel (private) anahtarın saklanacağı bir dosya ister. Açık anahtar (public key), aynı ada sahip ancak sonuna “.pub” eklenmiş bir dosyada saklanır. Program ayrıca bir anahtar parolası (passphrase) ister. Anahtar parolası, parola olmadığını belirtmek için boş bırakılabilir (ana bilgisayar anahtarlarının parolası boş olmalıdır) veya rastgele uzunlukta bir karakter dizisi olabilir. Anahtar parolası, bir şifreye (password) benzer; ancak bir dizi kelime, noktalama işareti, sayı, boşluk veya istediğiniz herhangi bir karakter dizisinden oluşan bir ifade olabilir. İyi anahtar parolaları 10-30 karakter uzunluğundadır, basit cümleler değildir veya kolayca tahmin edilemez (İngilizce düz yazı karakter başına yalnızca 1-2 bit entropiye sahiptir ve çok kötü anahtar parolaları oluşturur) ve büyük ve küçük harfler, sayılar ve alfasayısal olmayan karakterlerin bir karışımını içerir. Anahtar parolası daha sonra -p seçeneği kullanılarak değiştirilebilir.

Kaybedilen bir anahtar parolasını geri kurtarmanın hiçbir yolu yoktur. Anahtar parolası kaybedilir veya unutulursa, yeni bir anahtar oluşturulmalı ve ilgili açık anahtar diğer makinelere kopyalanmalıdır.

ssh-keygen, varsayılan olarak anahtarları OpenSSH'ye özgü bir biçimde yazacaktır. Bu biçim, beklemedeki (at rest) anahtarlar için daha iyi koruma sağlamasının yanı sıra anahtar yorumlarının özel anahtar dosyasının içinde saklanmasına izin verdiği için tercih edilir. Anahtar yorumu, anahtarın tanımlanmasına yardımcı olmak için yararlı olabilir. Anahtar oluşturulduğunda yorum varsayılan olarak “user@host” şeklinde başlatılır, ancak -c seçeneği kullanılarak değiştirilebilir.

ssh-keygen'in daha önce kullanılan PEM biçimindeki özel anahtarları -m bayrağını kullanarak yazması hâlâ mümkündür. Bu, yeni anahtarlar oluşturulurken kullanılabilir ve mevcut yeni biçimdeki anahtarlar, bu seçenek -p (parolayı değiştir) bayrağıyla birlikte kullanılarak dönüştürülebilir.

Bir anahtar oluşturulduktan sonra, ssh-keygen anahtarların etkinleştirilmek üzere nereye yerleştirilmesi gerektiğini soracaktır.

Seçenekler aşağıdaki gibidir:

  • -A: Henüz mevcut değillerse, tüm varsayılan anahtar türlerinde (rsa, ecdsa ve ed25519) ana bilgisayar (host) anahtarları oluşturur. Ana bilgisayar anahtarları, varsayılan anahtar dosyası yolu, boş bir anahtar parolası, anahtar türü için varsayılan bit değerleri ve varsayılan yorum ile oluşturulur. -f seçeneği de belirtilmişse, bunun argümanı, elde edilen ana bilgisayar anahtar dosyalarının varsayılan yoluna bir önek (prefix) olarak kullanılır. Bu, /etc/rc tarafından yeni ana bilgisayar anahtarları oluşturmak için kullanılır.

-a rounds Bir özel anahtar kaydedilirken, bu seçenek kullanılan KDF (anahtar türetme işlevi, şu anda bcrypt_pbkdf(3)) yineleme (round) sayısını belirtir. Daha yüksek sayılar, daha yavaş anahtar parolası doğrulamasına ve (anahtarların çalınması durumunda) kaba kuvvet (brute-force) şifre kırmaya karşı artan dirence yol açar. Varsayılan değer 16 yinelemedir.

  • -B: Belirtilen özel veya açık anahtar dosyasının bubblebabble özetini (digest) gösterir.

-b bits Oluşturulacak anahtardaki bit sayısını belirtir. RSA anahtarları için minimum boyut 1024 bit, varsayılan ise 3072 bittir. Genellikle 3072 bit yeterli kabul edilir. ECDSA anahtarları için -b bayrağı, üç eliptik eğri boyutundan birini seçerek anahtar uzunluğunu belirler: 256, 384 veya 521 bit. ECDSA anahtarları için bu üç değer dışındaki bit uzunluklarını kullanma girişimi başarısız olacaktır. ECDSA-SK, Ed25519 ve Ed25519-SK anahtarları sabit bir uzunluğa sahiptir ve -b bayrağı yok sayılacaktır.

-C comment Yeni bir yorum sağlar.

  • -c: Özel ve açık anahtar dosyalarındaki yorumun değiştirilmesini talep eder. Program, özel anahtarları içeren dosyayı, anahtarın bir parolası varsa bunu ve yeni yorumu soracaktır.

-D pkcs11 PKCS#11 paylaşılan kitaplığı pkcs11 tarafından sağlanan açık anahtarları indirir. -s ile birlikte kullanıldığında bu seçenek, bir CA (Sertifika Yetkilisi) anahtarının bir PKCS#11 belirtecinde (token) bulunduğunu belirtir (ayrıntılar için SERTİFİKALAR [CERTIFICATES] bölümüne bakın).

-E fingerprint_hash Anahtar parmak izleri görüntülenirken kullanılan karma (hash) algoritmasını belirtir. Geçerli seçenekler: “md5” ve “sha256”dır. Varsayılan değer “sha256”dır.

  • -e: Bu seçenek, özel veya açık bir OpenSSH anahtar dosyasını okuyacak ve -m seçeneği tarafından belirtilen biçimlerden birinde bir açık anahtarı standart çıktıya (stdout) yazdıracaktır. Varsayılan dışa aktarma (export) biçimi “RFC4716”dır. Bu seçenek, OpenSSH anahtarlarının bazı ticari SSH uygulamaları da dahil olmak üzere diğer programlar tarafından kullanılmak üzere dışa aktarılmasına olanak tanır.

-F hostname | [hostname]:port Belirtilen ana bilgisayar adını (isteğe bağlı bağlantı noktası [port] numarasıyla birlikte) bir known_hosts dosyasında arar ve bulunan eşleşmeleri listeler. Bu seçenek, karma hale getirilmiş (hashed) ana bilgisayar adlarını veya adreslerini bulmak için yararlıdır ve bulunan anahtarları karma bir biçimde yazdırmak için -H seçeneğiyle birlikte de kullanılabilir.

-f filename Anahtar dosyasının adını belirtir.

  • -g: -r komutu kullanılarak parmak izi kaynak kayıtları (fingerprint resource records) yazdırılırken genel DNS biçimini kullanır.

  • -H: Bir known_hosts dosyasını karma (hash) hale getirir. Bu, belirtilen dosyadaki tüm ana bilgisayar adlarını ve adreslerini karma temsilcileriyle değiştirir; orijinal içerik .old uzantılı bir dosyaya taşınır. Bu karmalar ssh ve sshd tarafından normal şekilde kullanılabilir, ancak dosyanın içeriği ifşa olsa bile tanımlayıcı bilgileri açığa çıkarmaz. Bu seçenek mevcut karma hale getirilmiş ana bilgisayar adlarını değiştirmez ve bu nedenle karma hale getirilmiş ve edilmemiş adların karışık olduğu dosyalarda güvenle kullanılabilir.

  • -h: Bir anahtarı imzalarken, kullanıcı sertifikası yerine bir ana bilgisayar (host) sertifikası oluşturur. Ayrıntılar için SERTİFİKALAR (CERTIFICATES) bölümüne bakın.

-I certificate_identity Bir açık anahtarı imzalarken anahtar kimliğini belirtir. Ayrıntılar için SERTİFİKALAR (CERTIFICATES) bölümüne bakın.

  • -i: Bu seçenek, -m seçeneği tarafından belirtilen biçimdeki şifrelenmemiş özel (veya açık) bir anahtar dosyasını okuyacak ve standart çıktıya (stdout) OpenSSH uyumlu bir özel (veya açık) anahtar yazdıracaktır. Bu seçenek, bazı ticari SSH uygulamaları da dahil olmak üzere diğer yazılımlardan anahtarların içe aktarılmasına (import) olanak tanır. Varsayılan içe aktarma biçimi “RFC4716”dır.

  • -K: Bir FIDO kimlik doğrulayıcıdan yerleşik (resident) anahtarları indirir. İndirilen her bir anahtar için geçerli dizine açık ve özel anahtar dosyaları yazılacaktır. Birden fazla FIDO kimlik doğrulayıcı bağlıysa, anahtarlar ilk dokunulan kimlik doğrulayıcıdan indirilecektir. Daha fazla bilgi için FIDO KİMLİK DOĞRULAYICI (FIDO AUTHENTICATOR) bölümüne bakın.

  • -k: Bir KRL (Anahtar İptal Listesi) dosyası oluşturur. Bu modda ssh-keygen, komut satırında sunulan her anahtarı veya sertifikayı iptal eden, -f bayrağıyla belirtilen konumda bir KRL dosyası oluşturacaktır. İptal edilecek anahtarlar/sertifikalar, açık anahtar dosyasıyla veya ANAHTAR İPTAL LİSTELERİ (KEY REVOCATION LISTS) bölümünde açıklanan biçim kullanılarak belirtilebilir.

  • -L: Bir veya daha fazla sertifikanın içeriğini yazdırır.

  • -l: Belirtilen açık anahtar dosyasının parmak izini gösterir. ssh-keygen, eşleşen açık anahtar dosyasını bulmaya çalışır ve parmak izini yazdırır. -v ile birleştirilirse, parmak iziyle birlikte anahtarın görsel bir ASCII sanatı gösterimi de sağlanır.

-M generate ‘diffie-hellman-group-exchange-*’ anahtar değişimi yöntemleri tarafından nihai olarak kullanılmak üzere aday Diffie-Hellman Grup Değişimi (DH-GEX) parametreleri oluşturur. Bu işlemle oluşturulan sayıların kullanılmadan önce daha ayrıntılı elenmesi (screened) gerekir. Daha fazla bilgi için MODÜL OLUŞTURMA (MODULI GENERATION) bölümüne bakın.

-M screen Diffie-Hellman Grup Değişimi için aday parametreleri eler. Bu seçenek, aday sayıların bir listesini kabul edecek ve bunların kabul edilebilir grup üreteçlerine (generators) sahip güvenli (Sophie Germain) asal sayılar olduğunu test edecektir. Bu işlemin sonuçları /etc/moduli dosyasına eklenebilir. Daha fazla bilgi için MODÜL OLUŞTURMA (MODULI GENERATION) bölümüne bakın.

-m key_format Anahtar oluşturma, -i (içe aktarma), -e (dışa aktarma) dönüştürme seçenekleri ve -p anahtar parolası değiştirme işlemi için bir anahtar biçimi belirtir. İkincisi, OpenSSH özel anahtarı ile PEM özel anahtar biçimleri arasında dönüştürme yapmak için kullanılabilir. Desteklenen anahtar biçimleri şunlardır: “RFC4716” (RFC 4716/SSH2 açık veya özel anahtarı), “PKCS8” (PKCS8 açık veya özel anahtarı) veya “PEM” (PEM açık anahtarı). Varsayılan olarak OpenSSH, yeni oluşturulan özel anahtarları kendi biçiminde yazacaktır, ancak açık anahtarları dışa aktarmak üzere dönüştürürken varsayılan biçim “RFC4716”dır. Desteklenen bir özel anahtar türü oluşturulurken veya güncellenirken biçimin “PEM” olarak ayarlanması, anahtarın eski PEM özel anahtar biçiminde saklanmasına neden olur.

-N new_passphrase Yeni anahtar parolasını sağlar.

-n principals Bir anahtar imzalanırken sertifikaya dahil edilecek bir veya daha fazla asıl adı (principal - kullanıcı veya ana bilgisayar adları) belirtir. Virgülle ayrılmış olarak birden fazla asıl ad belirtilebilir. Ayrıntılar için SERTİFİKALAR (CERTIFICATES) bölümüne bakın.

-O option Bir anahtar/değer seçeneği belirtir. Bunlar, ssh-keygen'den yapılması istenen işleme özgüdür.

Sertifikalar imzalanırken, SERTİFİKALAR (CERTIFICATES) bölümünde listelenen seçeneklerden biri burada belirtilebilir.

Modül oluşturma veya eleme işlemleri gerçekleştirilirken, MODÜL OLUŞTURMA (MODULI GENERATION) bölümünde listelenen seçeneklerden biri belirtilebilir.

FIDO kimlik doğrulayıcı destekli anahtarlar oluşturulurken, FIDO KİMLİK DOĞRULAYICI (FIDO AUTHENTICATOR) bölümünde listelenen seçenekler belirtilebilir.

-Y bayrağı kullanılarak imzayla ilgili seçenekler gerçekleştirilirken aşağıdaki seçenekler kabul edilir:

hashalg=algorithm İmzalanacak iletinin karmasını almak için kullanılacak karma (hash) algoritmasını seçer. Geçerli algoritmalar “sha256” ve “sha512”dir. Varsayılan değer “sha512”dir.

print-pubkey İmza doğrulamasından sonra tam açık anahtarı standart çıktıya yazdırır.

verify-time=timestamp İmzaları doğrularken geçerli zaman yerine kullanılacak bir zamanı belirtir. Zaman, YYYYMMDD[Z] or YYYYMMDDHHMM[SS][Z] biçimlerinde bir tarih veya saat olarak belirtilebilir. Tarih ve saatler, sonuna Z karakteri eklenmediği sürece geçerli sistem saat diliminde yorumlanır; Z eklendiğinde ise UTC saat diliminde yorumlanır.

Açık anahtarlardan -r bayrağı kullanılarak SSHFP DNS kayıtları oluşturulurken aşağıdaki seçenekler kabul edilir:

hashalg=algorithm -D bayrağı kullanılarak SSHFP kayıtları yazdırılırken kullanılacak bir karma (hash) algoritması seçer. Geçerli algoritmalar “sha1” ve “sha256”dır. Varsayılan ayar her ikisini birden yazdırmaktır.

-O seçeneği birden çok kez belirtilebilir.

-P passphrase (Eski) anahtar parolasını sağlar.

  • -p: Yeni bir özel anahtar oluşturmak yerine, özel bir anahtar dosyasının anahtar parolasının değiştirilmesini talep eder. Program, özel anahtarı içeren dosyayı, eski parolayı ve iki kez yeni parolayı soracaktır.

  • -Q: Anahtarların bir KRL içinde iptal edilip edilmediğini test eder. -l seçeneği de belirtilmişse, KRL'nin içeriği yazdırılır.

  • -q: ssh-keygen'i sessiz moda alır.

-R hostname | [hostname]:port Belirtilen ana bilgisayar adına (isteğe bağlı bağlantı noktası numarasıyla birlikte) ait tüm anahtarları bir known_hosts dosyasından kaldırır. Bu seçenek, karma hale getirilmiş ana bilgisayarları silmek için yararlıdır (yukarıdaki -H seçeneğine bakın).

-r hostname Belirtilen açık anahtar dosyası için hostname adlı SSHFP parmak izi kaynak kaydını (fingerprint resource record) yazdırır.

-s ca_key Belirtilen CA anahtarını kullanarak bir açık anahtarı onaylar (imzalar). Ayrıntılar için SERTİFİKALAR (CERTIFICATES) bölümüne bakın.

Bir KRL oluşturulurken, -s, sertifikaları doğrudan anahtar kimliği (key ID) veya seri numarası ile iptal etmek için kullanılan bir CA açık anahtar dosyasının yolunu belirtir. Ayrıntılar için ANAHTAR İPTAL LİSTELERİ (KEY REVOCATION LISTS) bölümüne bakın.

-t ecdsa | ecdsa-sk | ed25519 | ed25519-sk | rsa Oluşturulacak anahtarın türünü belirtir. Olası değerler: “ecdsa”, “ecdsa-sk”, “ed25519 (varsayılan)”, “ed25519-sk” veya “rsa”dır.

Bu bayrak, bir RSA CA anahtarı kullanarak sertifikaları imzalarken istenen imza türünü belirtmek için de kullanılabilir. Mevcut RSA imza varyantları şunlardır: “ssh-rsa” (SHA1 imzaları, önerilmez), “rsa-sha2-256” ve “rsa-sha2-512” (RSA anahtarları için varsayılan).

  • -U: -s veya -Y sign ile birlikte kullanıldığında bu seçenek, bir CA anahtarının bir ssh-agent(1) içinde bulunduğunu belirtir. Daha fazla bilgi için SERTİFİKALAR (CERTIFICATES) bölümüne bakın.

  • -u: Bir KRL'yi günceller. -k ile belirtildiğinde, komut satırı aracılığıyla listelenen anahtarlar, yeni bir KRL oluşturulmak yerine mevcut KRL'ye eklenir.

-V validity_interval Bir sertifikayı imzalarken geçerlilik aralığını (validity interval) belirtir. Bir geçerlilik aralığı, sertifikanın şu andan itibaren geçerli olduğunu ve o zamanda sona ereceğini belirten tek bir zamandan oluşabilir veya açık bir zaman aralığını belirtmek için iki noktayla ayrılmış iki zamandan oluşabilir.

Başlangıç zamanı şu şekilde belirtilebilir: • Sertifikanın belirli bir başlangıç zamanı olmadığını belirtmek için “always” dizesi. • Sistem saat diliminde YYYYMMDD veya YYYYMMDDHHMM[SS] olarak biçimlendirilmiş bir tarih veya saat. • UTC saat diliminde YYYYMMDDZ veya YYYYMMDDHHMM[SS]Z olarak bir tarih veya saat. • Mevcut sistem zamanından önceki göreli bir zaman; bir eksi işareti ve ardından sshd_config(5) kılavuzunun ZAMAN BİÇİMLERİ (TIME FORMATS) bölümünde açıklanan biçimde bir aralıktan oluşur. • “0x” ile başlayan onaltılık (hexadecimal) bir sayı olarak epoch'tan (1 Ocak 1970 00:00:00 UTC) bu yana geçen ham saniye değeri.

Bitiş zamanı başlangıç zamanına benzer şekilde belirtilebilir: • Sertifikanın belirli bir bitiş zamanı olmadığını belirtmek için “forever” dizesi. • Sistem saat diliminde YYYYMMDD veya YYYYMMDDHHMM[SS] olarak biçimlendirilmiş bir tarih veya saat. • UTC saat diliminde YYYYMMDDZ veya YYYYMMDDHHMM[SS]Z olarak bir tarih veya saat. • Mevcut sistem zamanından sonraki göreli bir zaman; bir artı işareti ve ardından sshd_config(5) kılavuzunun ZAMAN BİÇİMLERİ (TIME FORMATS) bölümünde açıklanan biçimde bir aralıktan oluşur. • “0x” ile başlayan onaltılık bir sayı olarak epoch'tan (1 Ocak 1970 00:00:00 UTC) bu yana geçen ham saniye değeri.

Örneğin:

+52w1d Şu andan itibaren 52 hafta ve bir gün sonrasına kadar geçerlidir.

-4w:+4w Dört hafta öncesinden dört hafta sonrasına kadar geçerlidir.

20100101123000:20110101123000 1 Ocak 2010 saat 12:30'dan 1 Ocak 2011 saat 12:30'a kadar geçerlidir.

20100101123000Z:20110101123000Z Benzerdir, ancak sistem saat dilimi yerine UTC saat diliminde yorumlanır.

-1d:20110101 Dünden 1 Ocak 2011 gece yarısına kadar geçerlidir.

0x1:0x2000000000 Kabaca 1970'lerin başından Mayıs 2033'e kadar geçerlidir.

-1m:forever Bir dakika öncesinden başlar ve süresi asla dolmaz.

  • -v: Ayrıntılı (verbose) mod. ssh-keygen'in ilerleyişi hakkında hata ayıklama (debugging) mesajları yazdırmasını sağlar. Bu, modül oluşturma işlemlerinde hata ayıklamak için yararlıdır. Birden fazla -v seçeneği ayrıntı düzeyini artırır. Maksimum sınır 3'tür.

-w provider Dahili USB HID desteğinin kullanılması şeklindeki varsayılan davranışı geçersiz kılarak, FIDO kimlik doğrulayıcı barındırmalı anahtarlar oluşturulurken kullanılacak bir kitaplığın yolunu belirtir.

-Y find-principals -f bayrağı kullanılarak sağlanan bir yetkilendirilmiş imzalayanlar dosyasında, - -s bayrağı kullanılarak sağlanan bir imzanın açık anahtarı ile ilişkili asıl ad(lar)ı bulur.: İzin verilen imzalayanlar dosyasının biçimi aşağıdaki İZİN VERİLEN İMZALAYANLAR (ALLOWED SIGNERS) bölümünde belgelenmiştir. Bir veya daha fazla eşleşen asıl ad bulunursa, bunlar standart çıktıya döndürülür.

-Y match-principals -f bayrağı kullanılarak belirtilen yetkilendirilmiş imzalayanlar dosyasında, -I bayrağı kullanılarak sağlanan asıl ad ile eşleşen asıl adı bulur. Bir veya daha fazla eşleşen asıl ad bulunursa, bunlar standart çıktıya döndürülür.

-Y check-novalidate ssh-keygen -Y sign kullanılarak oluşturulan bir imzanın geçerli bir yapıya sahip olup olmadığını kontrol eder. Bu, bir imzanın yetkilendirilmiş bir imzalayandan gelip gelmediğini doğrulamaz. Bir imzayı test ederken, ssh-keygen standart girdiden bir iletiyi ve -n kullanarak bir imza ad alanını (namespace) kabul eder. İlgili imzayı içeren bir dosya da -s bayrağı kullanılarak sağlanmalıdır. İmzanın başarıyla test edildiği, ssh-keygen'in sıfır çıkış durumu (exit status) döndürmesiyle belirtilir.

-Y sign Bir SSH anahtarı kullanarak bir dosyayı veya bazı verileri kriptografik olarak imzalar. İmzalama sırasında ssh-keygen, komut satırında imzalanacak sıfır veya daha fazla dosyayı kabul eder - hiçbir dosya belirtilmezse, ssh-keygen standart girdide sunulan verileri imzalar. İmzalar, girdi dosyasının yoluna “.sig” eklenerek yazılır veya imzalanacak ileti standart girdiden okunduysa standart çıktıya yazılır.

The key used for signing is specified using the -f option and may refer to either a private key, or a public key with the private half available via ssh-agent(1). An additional signature namespace, used to prevent signature confusion across different domains of use (e.g. file signing vs email signing) must be provided via the -n flag. Namespaces are arbitrary strings, and may include: “file” for file signing, “email” for email signing. For custom uses, it is recommended to use names following a NAMESPACE@YOUR.DOMAIN pattern to generate unambiguous namespaces.

-Y verify Yukarıda açıklandığı gibi ssh-keygen -Y sign kullanılarak oluşturulan bir imzanın doğrulanmasını talep eder. Bir imzayı doğrularken, ssh-keygen standart girdiden bir iletiyi ve -n kullanarak bir imza ad alanını kabul eder. İlgili imzayı içeren bir dosya da -s bayrağı kullanılarak, imzalayanın kimliği -I kullanılarak ve izin verilen imzalayanların bir listesi -f bayrağı aracılığıyla sağlanmalıdır. İzin verilen imzalayanlar dosyasının biçimi aşağıdaki İZİN VERİLEN İMZALAYANLAR (ALLOWED SIGNERS) bölümünde belgelenmiştir. İptal edilen anahtarları içeren bir dosya -r bayrağı kullanılarak aktarılabilir. İptal dosyası bir KRL veya satır başına bir tane olacak şekilde açık anahtarların bir listesi olabilir. Yetkilendirilmiş bir imzalayan tarafından gerçekleştirilen başarılı doğrulama, ssh-keygen'in sıfır çıkış durumu döndürmesiyle belirtilir.

  • -y: Bu seçenek, özel bir OpenSSH biçimli dosyayı okuyacak ve standart çıktıya (stdout) bir OpenSSH açık anahtarı yazdıracaktır.

-Z cipher OpenSSH biçiminde bir özel anahtar dosyası yazılırken şifreleme için kullanılacak şifreyi (cipher) belirtir. Kullanılabilir şifrelerin listesi "ssh -Q cipher" kullanılarak elde edilebilir. Varsayılan değer “aes256-ctr”dir.

-z serial_number Bu sertifikayı aynı CA'dan (Sertifika Yetkilisi) alınan diğerlerinden ayırt etmek için sertifikaya eklenecek bir seri numarası belirtir. Eğer serial_number değerinin önüne ‘+’ karakteri eklenirse, tek bir komut satırında imzalanan her sertifika için seri numarası artırılacaktır. Varsayılan seri numarası sıfırdır.

Bir KRL oluşturulurken, -z bayrağı bir KRL sürüm numarasını belirtmek için kullanılır.

Modül Oluşturma

ssh-keygen, Diffie-Hellman Grup Değişimi (DH-GEX) protokolü için gruplar oluşturmak üzere kullanılabilir. Bu grupları oluşturmak iki adımlı bir işlemdir: ilk olarak, hızlı ancak yoğun bellek kullanan bir işlem kullanılarak aday asal sayılar (candidate primes) oluşturulur. Bu aday asal sayılar daha sonra uygunluk açısından test edilir (yoğun işlemci gücü gerektiren bir işlem).

Asal sayıların oluşturulması -M generate seçeneği kullanılarak gerçekleştirilir. Asal sayıların istenen uzunluğu -O bits seçeneğiyle belirtilebilir. Örneğin:

ssh-keygen -M generate -O bits=2048 moduli-2048.candidates

Varsayılan olarak, asal sayı arama işlemi istenen uzunluk aralığındaki rastgele bir noktadan başlar. Bu, farklı bir başlangıç noktasını (onaltılık [hex] biçiminde) belirten -O start seçeneği kullanılarak geçersiz kılınabilir.

Bir dizi aday oluşturulduktan sonra, bunların uygunluk açısından elenmesi (screened) gerekir. Bu işlem -M screen seçeneği kullanılarak gerçekleştirilebilir. Bu modda ssh-keygen, adayları standart girdiden (veya -f seçeneği kullanılarak belirtilen bir dosyadan) okuyacaktır. Örneğin:

ssh-keygen -M screen -f moduli-2048.candidates moduli-2048

Varsayılan olarak, her aday 100 asallık testine (primality tests) tabi tutulacaktır. Bu durum -O prime-tests seçeneği kullanılarak geçersiz kılınabilir. DH üreteç (generator) değeri, ele alınan asal sayı için otomatik olarak seçilecektir. Belirli bir üreteç isteniyorsa, bu - -O generator seçeneği kullanılarak talep edilebilir.: Geçerli üreteç değerleri 2, 3 ve 5'tir.

Elenmiş DH grupları /etc/moduli dosyasına kurulabilir. Bu dosyanın çeşitli bit uzunluklarında modüller içermesi önemlidir.

Modül oluşturma ve eleme işlemleri için -O bayrağı aracılığıyla bir dizi seçenek mevcuttur:

lines=number DH aday elemesi gerçekleştirilirken belirtilen satır sayısı elendikten sonra çıkış yapar.

start-line=line-number DH aday elemesi gerçekleştirilirken belirtilen satır numarasından elenmeye başlar.

checkpoint=filename DH aday elemesi gerçekleştirilirken işlenen son satırı belirtilen dosyaya yazar. Bu, iş yeniden başlatılırsa girdi dosyasındaki zaten işlenmiş olan satırları atlamak için kullanılacaktır.

start=hex-value DH-GEX için aday modüller oluşturulurken başlangıç noktasını (onaltılık [hex] biçiminde) belirtir.

generator=value DH-GEX için aday modüller test edilirken istenen üreteci (ondalık [decimal] biçiminde) belirtir.

Sertifikalar

ssh-keygen, kullanıcı veya ana bilgisayar kimlik doğrulaması için kullanılabilecek sertifikalar üretmek üzere anahtarların imzalanmasını destekler. Sertifikalar; bir açık anahtar, bazı kimlik bilgileri, sıfır veya daha fazla asıl (kullanıcı veya ana bilgisayar) ad ve bir Sertifika Yetkilisi (CA) anahtarı tarafından imzalanmış bir dizi seçenekten oluşur. İstemciler veya sunucular daha sonra birçok kullanıcı/ana bilgisayar anahtarına güvenmek yerine yalnızca CA anahtarına güvenebilir ve sertifika üzerindeki imzasını doğrulayabilir. OpenSSH sertifikalarının, ssl(8) içinde kullanılan X.509 sertifikalarından farklı ve çok daha basit bir biçimde olduğunu unutmayın.

ssh-keygen iki tür sertifikayı destekler: kullanıcı ve ana bilgisayar. Kullanıcı sertifikaları kullanıcıların sunuculara karşı kimliğini doğrular, oysa ana bilgisayar sertifikaları sunucu ana bilgisayarlarının kullanıcılara karşı kimliğini doğrular. Bir kullanıcı sertifikası oluşturmak için:

$ ssh-keygen -s /path/to/ca_key -I key_id /path/to/user_key.pub

Elde edilen sertifika /path/to/user_key-cert.pub dosyasına yerleştirilecektir. Bir ana bilgisayar sertifikası -h seçeneğini gerektirir:

$ ssh-keygen -s /path/to/ca_key -I key_id -h /path/to/host_key.pub

Ana bilgisayar sertifikası /path/to/host_key-cert.pub dosyasına çıktı olarak verilecektir.

-D kullanarak belirteç kitaplığını sağlayıp -s seçeneğine bir argüman olarak açık yarısını sunarak CA anahtarını tanımlamak suretiyle, bir PKCS#11 belirtecinde saklanan bir CA anahtarını kullanarak imzalama yapmak mümkündür:

$ ssh-keygen -s ca_key.pub -D libpkcs11.so -I key_id user_key.pub

Benzer şekilde, CA anahtarının bir ssh-agent(1) bünyesinde barındırılması da mümkündür. Bu durum -U bayrağı ile belirtilir ve yine CA anahtarı açık yarısıyla tanımlanmalıdır.

$ ssh-keygen -Us ca_key.pub -I key_id user_key.pub

Tüm durumlarda, key_id, sertifika kimlik doğrulaması için kullanıldığında sunucu tarafından günlüğe kaydedilen bir "anahtar tanımlayıcıdır" (key identifier).

Sertifikalar, bir dizi asıl (kullanıcı/ana bilgisayar) ad için geçerli olacak şekilde sınırlandırılabilir. Varsayılan olarak, oluşturulan sertifikalar tüm kullanıcılar veya ana bilgisayarlar için geçerlidir. Belirli bir asıl ad grubu için sertifika oluşturmak amacıyla:

$ ssh-keygen -s ca_key -I key_id -n user1,user2 user_key.pub $ ssh-keygen -s ca_key -I key_id -h -n host.domain host_key.pub

Kullanıcı sertifikalarının geçerliliği ve kullanımına ilişkin ek sınırlamalar sertifika seçenekleri aracılığıyla belirtilebilir. Bir sertifika seçeneği, SSH oturumunun özelliklerini devre dışı olabilir, yalnızca belirli kaynak adreslerinden sunulduğunda geçerli olabilir veya belirli bir komutun kullanılmasını zorunlu kılabilir.

Kullanıcı sertifikaları için geçerli olan seçenekler şunlardır:

clear Etkinleştirilmiş tüm izinleri temizler. Bu, varsayılan izin kümesini temizlemek ve böylece izinlerin tek tek eklenebilmesini sağlamak için yararlıdır.

critical:name[=contents] extension:name[=contents] Rastgele bir sertifika kritik seçeneği veya uzantısı (extension) ekler. Belirtilen ad bir alan adı uzantısı içermelidir, örneğin “ad@ornek.com”. Eğer contents (içerik) belirtilmişse, uzantının/seçeneğin içeriği olarak bir dize şeklinde kodlanarak eklenir; aksi takdirde uzantı/seçenek içeriksiz olarak oluşturulur (genellikle bir bayrağı belirtir). Uzantılar, bunları tanımayan bir istemci veya sunucu tarafından yok sayılabilir; ancak bilinmeyen kritik seçenekler (critical options) sertifikanın reddedilmesine neden olacaktır.

force-command=command Sertifika kimlik doğrulaması için kullanıldığında, kullanıcı tarafından belirtilen herhangi bir kabuk veya komut yerine command (komut) yürütülmesini zorunlu kılar.

no-agent-forwarding ssh-agent(1) yönlendirmesini devre dışı bırakır (varsayılan olarak izin verilir).

no-port-forwarding Bağlantı noktası yönlendirmeyi (port forwarding) devre dışı bırakır (varsayılan olarak izin verilir).

no-pty PTY tahsisini devre dışı bırakır (varsayılan olarak izin verilir).

no-user-rc ~/.ssh/rc dosyasının sshd(8) tarafından yürütülmesini devre dışı bırakır (varsayılan olarak izin verilir).

no-x11-forwarding X11 yönlendirmesini devre dışı bırakır (varsayılan olarak izin verilir).

permit-agent-forwarding ssh-agent(1) yönlendirmesine izin verir.

permit-port-forwarding Bağlantı noktası yönlendirmeye izin verir.

permit-pty PTY tahsisine izin verir.

permit-user-rc ~/.ssh/rc dosyasının sshd(8) tarafından yürütülmesine izin verir.

permit-X11-forwarding X11 yönlendirmesine izin verir.

no-touch-required Bu anahtar kullanılarak yapılan imzaların kullanıcı mevcudiyetinin gösterilmesini (örneğin kullanıcının kimlik doğrulayıcıya dokunmasını) gerektirmemesini sağlar. Bu seçenek yalnızca FIDO kimlik doğrulayıcı algoritmaları ecdsa-sk ve ed25519-sk için anlamlıdır.

source-address=address_list Sertifikanın geçerli kabul edildiği kaynak adresleri sınırlandırır. address_list değeri, CIDR biçiminde bir veya daha fazla adres/ağ maskesi (netmask) çiftinden oluşan virgülle ayrılmış bir listedir.

verify-required Bu anahtar kullanılarak yapılan imzaların, kullanıcının önce doğrulandığını (örneğin PIN veya belirteç üzerindeki biyometrik verilerle) göstermesini gerektirir. Bu seçenek yalnızca FIDO kimlik doğrulayıcı algoritmaları ecdsa-sk ve ed25519-sk için anlamlıdır.

Şu anda ana bilgisayar (host) anahtarları için geçerli hiçbir standart seçenek yoktur.

Son olarak, sertifikalar bir geçerlilik ömrüyle (validity lifetime) tanımlanabilir. -V seçeneği, sertifikanın başlangıç ve bitiş zamanlarının belirtilmesine olanak tanır. Bu aralığın dışındaki bir zamanda sunulan bir sertifika geçerli kabul edilmeyecektir. Varsayılan olarak sertifikalar UNIX Başlangıcından (Epoch) uzak geleceğe kadar geçerlidir.

Kullanıcı veya ana bilgisayar kimlik doğrulaması için kullanılacak sertifikaların CA açık anahtarına sshd(8) veya ssh(1) tarafından güvenilmesi gerekir. Ayrıntılar için bu kılavuz sayfalarına bakın.

Fido Kimlik Doğrulayıcı

ssh-keygen, FIDO kimlik doğrulayıcı destekli anahtarlar oluşturabilir; bu anahtarlar, kullanıldıklarında donanım kimlik doğrulayıcı takılı olduğu sürece OpenSSH tarafından desteklenen diğer herhangi bir anahtar türü gibi kullanılabilir. FIDO kimlik doğrulayıcılar genellikle kullanıcının dokunarak veya hafifçe vurarak işlemleri açıkça yetkilendirmesini gerektirir. FIDO anahtarları iki parçadan oluşur: diskteki özel anahtar dosyasında saklanan bir anahtar tutamacı (key handle) parçası ve her bir FIDO kimlik doğrulayıcıya özgü olan ve kimlik doğrulayıcı donanımından dışa aktarılamayan cihaz başına bir özel anahtar. Bunlar, kimlik doğrulama sorgularını (challenges) imzalamak için kullanılan gerçek anahtarı türetmek amacıyla kimlik doğrulama sırasında donanım tarafından birleştirilir. Desteklenen anahtar türleri ecdsa-sk ve ed25519-sk'dir.

FIDO anahtarları için geçerli olan seçenekler şunlardır:

application “ssh:” olan varsayılan FIDO uygulama/kaynak (application/origin) dizesini geçersiz kılar. Bu, ana bilgisayara veya alana özgü yerleşik (resident) anahtarlar oluştururken yararlı olabilir. Belirtilen uygulama dizesi “ssh:” ile başlamalıdır.

challenge=path Anahtar oluşturma sırasında FIDO kimlik doğrulayıcıya aktarılacak bir sorgu (challenge) dizesinin yolunu belirtir. Sorgu dizesi, anahtar kaydı (key enrollment) için bant dışı (out-of-band) bir protokolün parçası olarak kullanılabilir (varsayılan olarak rastgele bir sorgu kullanılır).

device Kimlik doğrulayıcı ara yazılımının (middleware) bir tane seçmesine izin vermek yerine, kullanılacak bir fido(4) cihazını açıkça belirtir.

no-touch-required Oluşturulan özel anahtarın imzalar yapılırken dokunma olaylarını (kullanıcı mevcudiyetini) gerektirmemesi gerektiğini belirtir. Yetkilendirilmiş anahtarlar (authorized_keys) seçeneğiyle geçersiz kılınmadığı sürece sshd(8)'in bu tür imzaları varsayılan olarak reddedeceğini unutmayın.

resident Anahtar tutamacının FIDO kimlik doğrulayıcının kendisinde saklanması gerektiğini belirtir. Bu, kimlik doğrulayıcının birden fazla bilgisayarda kullanılmasını kolaylaştırır. Yerleşik (resident) anahtarlar FIDO2 kimlik doğrulayıcılarında desteklenebilir ve genellikle anahtar oluşturulmadan önce kimlik doğrulayıcıda bir PIN ayarlanmasını gerektirir. Yerleşik anahtarlar ssh-add(1) kullanılarak kimlik doğrulayıcıdan yüklenebilir. Bir anahtarın her iki parçasının da bir FIDO kimlik doğrulayıcıda saklanması, bir saldırganın çalınmış bir kimlik doğrulayıcı cihazını kullanabilme olasılığını artırır.

user Boş varsayılan kullanıcı adını geçersiz kılarak yerleşik bir anahtarla ilişkilendirilecek bir kullanıcı adı belirtir. Aynı uygulama adı için birden fazla yerleşik anahtar oluşturulurken bir kullanıcı adı belirtilmesi yararlı olabilir.

verify-required Bu özel anahtarın her imza için kullanıcı doğrulaması gerektirmesi gerektiğini belirtir. Tüm FIDO kimlik doğrulayıcıları bu seçeneği desteklemez. Şu anda PIN kimlik doğrulaması desteklenen tek doğrulama yöntemidir, ancak gelecekte diğer yöntemler de desteklenebilir.

write-attestation=path Anahtar oluşturma sırasında FIDO kimlik doğrulayıcılardan döndürülen onaylama (attestation) verilerini kaydetmek için anahtar oluşturma zamanında kullanılabilir. Bu bilgiler potansiyel olarak hassastır. Varsayılan olarak bu bilgiler atılır.

Anahtar İptal Listeleri

ssh-keygen, OpenSSH biçimli Anahtar İptal Listelerini (KRL) yönetebilir. Bu ikili (binary) dosyalar, seri numarasına göre iptal ediliyorlarsa sertifika başına bir bit kadar az yer kaplayan kompakt bir biçim kullanarak iptal edilecek anahtarları veya sertifikaları belirtir.

KRL'ler -k bayrağı kullanılarak oluşturulabilir. Bu seçenek komut satırından bir veya daha fazla dosyayı okur ve yeni bir KRL oluşturur. Dosyalar bir KRL belirtimi (aşağıya bakın) içerebilir veya her satıra bir tane gelecek şekilde açık anahtarları listeleyebilir. Düz açık anahtarlar, karmaları (hash) veya içerikleri KRL'de listelenerek iptal edilir; sertifikalar ise seri numarası veya anahtar kimliği (key ID - seri numarası sıfırsa veya mevcut değilse) ile iptal edilir.

Bir KRL belirtimi kullanarak anahtarları iptal etmek, anahtarları iptal etmek için kullanılan kayıt türleri üzerinde açık kontrol sağlar ve elinizde orijinal sertifikanın tamamı bulunmadan sertifikaları doğrudan seri numarası veya anahtar kimliğiyle iptal etmek için kullanılabilir. Bir KRL belirtimi, aşağıdaki yönergelerden (directives) birini içeren ve ardından iki nokta üst üste ile yönergeye özel bazı bilgilerin geldiği satırlardan oluşur.

serial: serial_number[-serial_number] Belirtilen seri numarasına sahip bir sertifikayı iptal eder. Seri numaraları sıfır hariç 64 bitlik değerlerdir ve ondalık (decimal), onaltılık (hex) veya sekizlik (octal) olarak ifade edilebilir. Aralarında kısa çizgiyle ayrılmış iki seri numarası belirtilirse, bu numaralar dahil olmak üzere aralarındaki tüm seri numarası aralığı iptal edilir. CA anahtarı, -s seçeneği kullanılarak ssh-keygen komut satırında belirtilmiş olmalıdır.

id: key_id Belirtilen anahtar kimliği (key ID) dizesine sahip bir sertifikayı iptal eder. CA anahtarı, -s seçeneği kullanılarak ssh-keygen komut satırında belirtilmiş olmalıdır.

key: public_key Belirtilen anahtarı iptal eder. Bir sertifika listelenmişse, düz bir açık anahtar olarak iptal edilir.

sha1: public_key SHA1 karmasını KRL'ye dahil ederek belirtilen anahtarı iptal eder.

sha256: public_key SHA256 karmasını KRL'ye dahil ederek belirtilen anahtarı iptal eder. Anahtarları SHA256 karmasıyla iptal eden KRL'ler, 7.9 sürümünden önceki OpenSSH sürümleri tarafından desteklenmez.

hash: fingerprint Bir sshd(8) kimlik doğrulama günlüğü mesajından veya ssh-keygen -l bayrağından elde edilen bir parmak izi karmasını (fingerprint hash) kullanarak bir anahtarı iptal eder. Burada yalnızca SHA256 parmak izleri desteklenir ve elde edilen KRL'ler 7.9 sürümünden önceki OpenSSH sürümleri tarafından desteklenmez.

KRL'ler, -k seçeneğine ek olarak -u bayrağı kullanılarak güncellenebilir. Bu seçenek belirtildiğinde, komut satırı aracılığıyla listelenen anahtarlar KRL ile birleştirilir ve halihazırda orada bulunanlara eklenir.

Bir KRL verildiğinde, belirli bir anahtarı (veya anahtarları) iptal edip etmediğini test etmek de mümkündür. - -Q bayrağı, komut satırında belirtilen her bir anahtarı test ederek mevcut bir KRL'yi sorgulayacaktır.: Komut satırında listelenen herhangi bir anahtar iptal edilmişse (veya bir hatayla karşılaşılmışsa), ssh-keygen sıfır olmayan bir çıkış durumuyla sonlanacaktır. Sıfır çıkış durumu yalnızca hiçbir anahtar iptal edilmediğinde döndürülecektir.

İzin Verilen İmzalayanlar

İmzaları doğrularken, ssh-keygen bir imzanın yetkili bir kaynaktan gelip gelmediğini belirlemek için basit bir kimlik ve anahtar listesi kullanır. Bu "izin verilen imzalayanlar" (allowed signers) dosyası, sshd(8) içinde açıklanan YETKİLENDİRİLMİŞ ANAHTARLAR DOSYA BİÇİMİ'ne (AUTHORIZED_KEYS FILE FORMAT) benzer bir biçim kullanır. Dosyanın her satırı boşlukla ayrılmış şu alanları içerir: asıl adlar (principals), seçenekler (options), anahtar türü (keytype), base64 ile kodlanmış anahtar. Boş satırlar ve ‘#’ ile başlayan satırlar yorum satırı olarak kabul edilerek yok sayılır.

principals alanı, imzalama için kabul edilen virgülle ayrılmış bir veya daha fazla KULLANICI@ALAN_ADI (USER@DOMAIN) kimlik şablonundan oluşan bir şablon listesidir (pattern-list) (bkz. ssh_config(5) kılavuzundaki ŞABLONLAR [PATTERNS]). Doğrulama sırasında, ilgili anahtarın doğrulama için kabul edilebilir sayılması için -I seçeneğiyle sunulan kimliğin bir principals şablonuyla eşleşmesi gerekir.

Seçenekler (varsa) virgülle ayrılmış seçenek belirtimlerinden oluşur. Çift tırnak içi hariç hiçbir boşluğa izin verilmez. Aşağıdaki seçenek belirtimleri desteklenmektedir (seçenek anahtar kelimelerinin büyük/küçük harfe duyarsız olduğunu unutmayın):

cert-authority Bu anahtarın bir sertifika yetkilisi (CA) olarak kabul edildiğini ve bu CA tarafından imzalanan sertifikaların doğrulama için kabul edilebileceğini belirtir.

namespaces=namespace-list Bu anahtar için kabul edilen ad alanlarının (namespaces) bir şablon listesini (pattern-list) belirtir. Bu seçenek mevcutsa, anahtarın kabul edilebilir sayılması için imza nesnesine gömülü olan ve doğrulama komut satırında sunulan imza ad alanının belirtilen listeyle eşleşmesi gerekir.

valid-after=timestamp Anahtarın belirtilen zaman damgasında veya sonrasında kullanım için geçerli olduğunu belirtir; bu zaman damgası YYYYMMDD[Z] veya YYYYMMDDHHMM[SS][Z] biçimlerinde bir tarih veya saat olabilir. Tarih ve saatler, sonuna Z karakteri eklenmediği sürece geçerli sistem saat diliminde yorumlanır; Z eklendiğinde ise UTC saat diliminde yorumlanır.

valid-before=timestamp Anahtarın belirtilen zaman damgasında veya öncesinde kullanım için geçerli olduğunu belirtir.

Sertifikalar tarafından yapılan imzalar doğrulanırken, beklenen asıl ad (principal name) hem izin verilen imzalayanlar dosyasındaki principals şablonuyla hem de sertifikanın kendisine gömülü asıl adla eşleşmelidir.

Örnek bir izin verilen imzalayanlar dosyası:

Satır başında yorumlara izin verilir

user1@example.com,user2@example.com ssh-rsa AAAAX1...

Bir alandaki tüm asıllar için güvenilen bir sertifika yetkilisi.

*@example.com cert-authority ssh-ed25519 AAAB4...

Yalnızca dosya imzalama için kabul edilen bir anahtar.

user2@example.com namespaces="file" ssh-ed25519 AAA41...

Çevre Değişkenleri

SSH_SK_PROVIDER Dahili USB HID desteğinin kullanılması şeklindeki varsayılan davranışı geçersiz kılarak, herhangi bir FIDO kimlik doğrulayıcı barındırmalı anahtar yüklenirken kullanılacak bir kitaplığın yolunu belirtir.

Dosyalar

~/.ssh/id_ecdsa ~/.ssh/id_ecdsa_sk ~/.ssh/id_ed25519 ~/.ssh/id_ed25519_sk ~/.ssh/id_rsa Kullanıcının ECDSA, kimlik doğrulayıcı barındırmalı ECDSA, Ed25519, kimlik doğrulayıcı barındırmalı Ed25519 veya RSA kimlik doğrulama kimliğini (authentication identity) içerir. Bu dosya, kullanıcının kendisinden başka kimse tarafından okunabilir olmamalıdır. Anahtar oluşturulurken bir anahtar parolası belirtmek mümkündür; bu parola, bu dosyanın özel (private) kısmını 128 bit AES kullanarak şifrelemek için kullanılacaktır. Bu dosyaya ssh-keygen tarafından otomatik olarak erişilmez ancak özel anahtar için varsayılan dosya olarak sunulur. Bir oturum açma girişimi yapıldığında ssh(1) bu dosyayı okuyacaktır.

~/.ssh/id_ecdsa.pub ~/.ssh/id_ecdsa_sk.pub ~/.ssh/id_ed25519.pub ~/.ssh/id_ed25519_sk.pub ~/.ssh/id_rsa.pub Kimlik doğrulama için ECDSA, kimlik doğrulayıcı barındırmalı ECDSA, Ed25519, kimlik doğrulayıcı barındırmalı Ed25519 veya RSA açık anahtarını (public key) içerir. Bu dosyanın içeriği, kullanıcının açık anahtar kimlik doğrulaması kullanarak oturum açmak istediği tüm makinelerdeki ~/.ssh/authorized_keys dosyasına eklenmelidir. Bu dosyanın içeriğini gizli tutmaya gerek yoktur.

/etc/moduli DH-GEX için kullanılan Diffie-Hellman gruplarını içerir. Dosya biçimi moduli(5) içinde açıklanmaktadır.

Ayrıca Bakınız

ssh(1), ssh-add(1), ssh-agent(1), moduli(5), sshd(8)

The Secure Shell (SSH) Public Key File Format, RFC 4716, 2006.

Yazarlar

OpenSSH, Tatu Ylonen tarafından yayınlanan 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 özellikler eklemiş ve OpenSSH'yi meydana getirmişlerdir. Markus Friedl, SSH protokolü 1.5 ve 2.0 sürümleri için destek katkısında bulunmuştur.