SSH Anahtarıyla Kimlik Doğrulama Nasıl Çalışır?

SSH anahtarıyla kimlik doğrulama, kullanıcının hesap parolasını sunucuya göndermek yerine belirli bir özel anahtara sahip olduğunu kriptografik imzayla kanıtlamasına dayanır. Açık anahtar sunucuda ilgili hesap için yetkilendirilir; özel anahtar istemci cihazında veya imzalama için kullanılan güvenlik aygıtında kalır.
Uzaktaki sistemlere şifreli erişim sağlayan SSH, bağlantının başında taşıma kanalını kurar ve sunucuyu tanıtan host anahtarını denetler. Kullanıcı kimlik doğrulaması bundan sonra gerçekleşir. Bu iki aşamada farklı anahtarlar kullanılır ve ayrı güven kararları verilir.
Anahtar parolası, özel anahtarı yerel depolamada korur ve sunucuya iletilmez. ssh-agent, imza isteklerini yerel olarak karşılar ve anahtar parolasını her bağlantıda yeniden girme ihtiyacını azaltabilir.
SSH Oturumunda Taşıma ve Kullanıcı Kimlik Doğrulaması
Anahtar tabanlı giriş yalnız açık anahtar karşılaştırmasından oluşmaz. SSH taşıma katmanı, sunucu kimliği, kullanıcı hesabı, yetkilendirilmiş açık anahtar ve imza doğrulaması aynı oturum içinde belirli bir sırayla çalışır.
- Taşıma kanalı kurulur: Taraflar şifreleme ve bütünlük yöntemlerinde anlaşır. Bu aşamada oluşan oturum tanımlayıcısı, sonraki kullanıcı imzasının belirli bağlantıya ait olduğunu doğrulamak için imzalanan veriye eklenir.
- Sunucu kimliği denetlenir: Sunucu, host anahtarıyla kendini kanıtlar. İstemci bu anahtarı daha önce kaydettiği güvenilir kayıtla veya kuruluşun yönettiği doğrulama mekanizmasıyla karşılaştırır. İlk bağlantıda anahtarı ayırt etmeye yarayan kısa özet değer olan parmak izi, bağımsız ve güvenilir bir kanaldan doğrulanmalıdır. Anahtar değişikliği uyarısı da planlı yenileme, yanlış hedef veya araya girme olasılıkları araştırılmadan geçilmemelidir.
- Kullanıcı ve açık anahtar bildirilir: İstemci hedef kullanıcı adını ve kullanacağı açık anahtarı sunar. Bazı istemciler, imza üretmeden önce anahtarın kabul edilebilir olup olmadığını soran bir ön kontrol yapabilir.
- İmza oluşturulur: İstemci, oturum tanımlayıcısı ile kimlik doğrulama isteğinin ilgili alanlarını özel anahtarla imzalar. Bu bağ, daha önce yakalanmış bir imzanın başka bir SSH oturumunda yeniden kullanılmasını önler.
- İmza ve yetki birlikte değerlendirilir: Sunucu, imzayı bildirilen açık anahtarla doğrular. Kriptografik doğrulama başarılı olsa bile hesap durumu, erişim politikası veya anahtara bağlı kısıtlar karşılanmıyorsa giriş reddedilebilir. Sunucu ek bir kimlik doğrulama yöntemi istiyorsa girişten önce o aşama da tamamlanmalıdır.
Bu mekanizma, sunucunun hesap parolasını doğrulamasına dayanmaz. Kanıt, özel anahtarla üretilen ve mevcut SSH oturumuna bağlanan dijital imzadır. Sunucu politikası anahtar doğrulamasına ek olarak hesap parolası veya başka bir doğrulama yöntemi isteyebilir; anahtar parolası ise istemcideki korumadır ve bu sunucu denetiminin yerine geçmez.
Kullanıcı Anahtarı, Host Anahtarı ve TLS Sertifikası Arasındaki Farklar
SSH ortamında benzer görünen anahtar ve sertifika kavramları farklı kimlikleri doğrular. Aşağıdaki karşılaştırma, hangi gizli bilginin nerede tutulduğunu ve her öğenin neyi kanıtladığını ayırır.
| Öğe | Gizli Kısım | Doğrulanan Kimlik | Temel Rol |
|---|---|---|---|
| Kullanıcı SSH anahtarı | Özel anahtar istemcide veya donanım destekli anahtar deposunda | Kullanıcı ya da otomasyon hesabı | Özel anahtara sahip olunduğunu imzayla kanıtlar; açık anahtar sunucu tarafında yetkilendirilir. |
| SSH host anahtarı | Özel host anahtarı SSH sunucusunda veya sunucunun kullandığı güvenlik aygıtında | Bağlanılan SSH sunucusu | İstemcinin bağlandığı sunucunun beklenen sunucu olduğunu doğrulamasına yardım eder. |
| TLS sunucu sertifikası ve anahtarı | Özel anahtar TLS hizmetini sunan sistemde veya bu sistemin kullandığı güvenlik aygıtında | Web sitesi veya başka bir TLS hizmeti | TLS bağlantısında hizmetin kimliğini doğrulamaya yardım eder; SSH kullanıcı anahtarının yerine geçmez. |
Bir web sunucusunda kullanılan TLS sertifikası, SSH kullanıcısının kimliğini doğrulamaz. SSH host anahtarı da tarayıcıların kullandığı TLS sertifika zincirinin parçası değildir. Her mekanizma için güvenilen kayıtlar ve doğrulama süreci ayrı yönetilmelidir.
Anahtar Parolası ve SSH Aracısının Rolleri
Özel anahtarın güvenliği yalnız anahtarın gizli tutulmasına bağlı değildir. Anahtar parolası depolanan anahtarı şifreler; SSH aracısı ise anahtarı istemci uygulamalarına vermeden imza isteklerini karşılar. Aracıya erişimin de sınırlandırılması gerekir.
Anahtar Parolası Özel Anahtarı Yerelde Korur
Anahtar parolası, dışa aktarılabilir özel anahtarın depolanmış kopyasını şifrelemek için kullanılır. Sunucu anahtar parolasını bilmez ve kimlik doğrulama sırasında almaz. Anahtar kopyalanırsa güçlü bir anahtar parolası, saldırganın özel anahtarı hemen kullanmasını zorlaştırabilir.
Bu koruma tam güvenlik sağlamaz. Anahtarın kilidi açıkken istemcide çalışan kötü amaçlı bir yazılım, açık SSH oturumunu veya SSH aracısının imza yetkisini kötüye kullanabilir. Uç nokta güvenliği, yerel erişim izinleri ve oturum kilidi anahtar parolasını tamamlayan kontrollerdir.
SSH Aracısı İmza İşlemini Yerelde Yürütür
SSH aracısı, kilidi açılmış özel anahtarı belirli bir süre bellekte tutabilir veya donanım destekli anahtar için imza isteğini ilgili aygıta iletebilir. İstemci uygulaması özel anahtarın ham içeriğini almak yerine SSH aracısından belirli veriyi imzalamasını ister.
SSH aracısına erişebilen yetkisiz bir yazılım, anahtarı dışarı çıkaramasa bile imza talep etmeye çalışabilir. Bu nedenle anahtarın bellekte kalma süresi, kullanıcı onayı, ekran kilidi ve SSH aracısının sunduğu erişim kısıtları dikkatle yapılandırılmalıdır. Agent forwarding, ara sunucunun kullanıcının aracısına imza isteği iletebilmesini sağlar; özel anahtar ara sunucuya kopyalanmaz. Bu özellik yalnız güvenilen ara sunucularda ve gerçekten gerekli olduğunda kullanılmalıdır.
Sunucudaki Yetkilendirme ile Kimlik Doğrulama Farklıdır
Geçerli imza, istemcinin özel anahtara sahip olduğunu kanıtlar; hangi hesaba, hangi koşullarda ve hangi işlemler için erişebileceğini tek başına belirlemez. Sunucudaki yetkilendirme kaydı ve hesap politikası bu kararı verir.
Açık anahtar belirli bir kullanıcı hesabına bağlanabilir; SSH sunucusunun desteklediği seçeneklere göre kaynak adresi, belirli bir komut, oturum türü veya trafik yönlendirme yetkisi gibi ek koşullarla sınırlandırılabilir. Bu seçeneklerin adı ve desteği SSH sunucusuna göre değişir; evrensel bir dosya biçimi veya tek yapılandırma yolu varsayılmamalıdır.
SSH sertifikası kullanılan sistemlerde sunucu, her kullanıcı anahtarını ayrı ayrı kaydetmek yerine sertifikaları imzalayan yetkiliye güvenebilir. Bu sertifika, açık anahtarı izin verilen kimlikler ve geçerlilik süresiyle ilişkilendirir; web bağlantılarındaki TLS sertifikasıyla aynı biçim değildir. Süre sınırı, destekleyen SSH sunucularında doğrudan açık anahtar kaydına da uygulanabilir.
Paylaşılan özel anahtarlar izlenebilirliği bozar. Her kullanıcı ve otomasyon görevi için ayrı anahtar kullanılmalı; geliştirme ile üretim gibi farklı güven alanları da ayrı anahtarlarla birbirinden ayrılmalıdır. Sunucu anahtar tanımlayıcılarını günlüklerine kaydediyorsa hangi kullanıcı veya otomasyonun eriştiği daha kolay ayırt edilebilir. Her anahtarın yetkisi yalnız gereken hesap ve işlemlerle sınırlandırılmalıdır.
SSH Anahtarının Üretimden İptale Kadar Yönetimi
SSH anahtarının güvenliği, anahtar üretildikten sonra bitmez. Üretim, kayıt, dağıtım, kullanım, yenileme ve iptal adımları birlikte yönetilmediğinde eski veya sahipsiz anahtarlar kalıcı erişim noktalarına dönüşebilir.
Üretim ve Envanter
Anahtar, güvenilen bir istemcide veya uygun bir donanım güvenlik bileşeninde üretilmelidir. Algoritma ve parametre seçimi, kullanılan SSH uygulamalarının güncel desteği, kuruluş politikası ve birlikte çalışabilirlik gereksinimleriyle belirlenmelidir; her ortamda ve süresiz geçerli tek bir algoritma seçimi yoktur.
Her anahtar için anahtar sahibi, amaç, hedef ortam, oluşturulma tarihi, gözden geçirme tarihi, varsa sona erme tarihi ve doğrulanabilir parmak izi kaydedilmelidir. Anahtara eklenen açıklama tek başına güvenilir kimlik kanıtı sayılmamalı; merkezi envanter kaydıyla eşleştirilmelidir.
Dağıtım ve İlk Doğrulama
Sunucuya özel anahtar aktarılmamalıdır; doğrudan anahtar yetkilendirmesinde açık anahtar, sertifika kullanılan yapıda ise gerekli güven ve yetki kayıtları dağıtılır. Aktarımda onaylı bir dağıtım kanalı kullanılmalı, hedef hesap doğrulanmalı ve parmak izi bağımsız bir kayıtla karşılaştırılmalıdır. Özel anahtar e-posta, sohbet, ortak dosya alanı veya kaynak kod deposu üzerinden paylaşılmamalıdır.
Yeni anahtarla erişim ayrı bir oturumda test edilmeden hesap parolasıyla girişi kapatmak veya çalışan yönetici oturumunu sonlandırmak, uzaktan erişimin tamamen kesilmesine yol açabilir. Değişiklik sırasında doğrulanmış bir geri alma yolu, ikinci bir yetkili oturum veya SSH bağlantısından bağımsız bir yönetim konsolu hazır tutulmalıdır.
İzleme, Yenileme ve İptal
Başarılı ve başarısız kullanıcı kimlik doğrulama denemeleri, hesap, zaman, kaynak ve uygulamanın sağlayabildiği anahtar tanımlayıcılarıyla kaydedilmelidir. Kayıt biçimi ürüne göre değişir; bu nedenle anahtar parmak izinin veya eşdeğer bir tanımlayıcının gerçekten kayda alındığı test edilmelidir.
Planlı anahtar yenilemesinde yeni anahtar yetkilendirilir ve erişim doğrulanır; eski anahtarın yetkisi kısa, kontrollü bir geçişten sonra kaldırılır. Cihaz kaybı, görev değişikliği, işten ayrılma, şüpheli kullanım, anahtar kopyasının açığa çıkması veya algoritma politikasının değişmesi planlı tarihi beklemeden iptal gerektirebilir.
İptal, yalnız istemcideki özel anahtarı silmek değildir. İlgili anahtarın yetkisi tüm hedef hesaplardan ve merkezi yetkilendirme kaynaklarından kaldırılmalıdır. SSH sertifikasıyla erişim de varsa yalnız açık anahtar kaydını silmek yeterli olmayabilir; kullanılan sistemin sertifika veya anahtar iptal mekanizması da uygulanmalıdır. İptal mevcut oturumları kendiliğinden kapatmaz; gerekiyorsa etkin oturumlar ayrıca sonlandırılmalı ve olay kayıtları incelenmelidir. Birden fazla sisteme dağıtılmış anahtarlar için merkezi envanter bu işlemin eksiksiz yapılmasını destekler.
SSH Anahtarıyla Kimlik Doğrulamanın Çözmediği Konular
SSH anahtarıyla kimlik doğrulama, kullanıcının kimliğini doğrulayan bir yöntemdir; hedefe giden ağ bağlantısını kurmaz. IPv4 veya IPv6 ağ yolu, güvenlik duvarı kuralları, hizmetin dinlediği bağlantı noktası ve ad çözümleme gibi ön koşullar ayrıca sağlanmalıdır.
Anahtar doğrulaması, istemci cihazın ele geçirilmediğini kanıtlamaz ve hesaba sınırsız yetki verilmesini haklı çıkarmaz. Uç nokta koruması, en az yetki, kayıtların izlenmesi ve geri alınabilir değişiklik yönetimi birlikte uygulanmalıdır.







