- Cloudflare, OPKSSH'yi (OpenPubkey SSH) açık kaynak olarak yayımladı
- OPKSSH, OpenID Connect tabanlı SSO oturum açma ile SSH anahtarlarını otomatik olarak oluşturup kullanmayı sağlıyor
- Kullanıcıların artık SSH açık/gizli anahtarlarını doğrudan yönetmesi veya sunuculara dağıtması gerekmiyor
- SSH protokolünü değiştirmeden SSH kimlik doğrulamasına kimlik tabanlı bir yaklaşım getirilebiliyor
SSO ve OpenID Connect için arka plan açıklaması
- SSO (Single Sign-On), kullanıcının bir kez oturum açarak birden çok sisteme erişebilmesini sağlayan bir kimlik doğrulama yöntemidir
- OpenID Connect, çoğunlukla SSO için kullanılan ve kullanıcı bilgilerini içeren ID token üreten bir protokoldür
- ID token, kullanıcının e-posta adresi gibi bilgileri içerir ancak açık anahtar içermez → bu yüzden SSH gibi güvenlik protokollerinde doğrudan kullanılamaz
OpenPubkey tanıtımı
- OpenPubkey, kullanıcının açık anahtarını ID token içine ekleyerek bunu bir PK Token'a dönüştürür
- Bu sayede “Google, alice@example.com kullanıcısının 0x123 açık anahtarını kullandığını doğrulayabilir”
- Mevcut OpenID Connect protokolünde herhangi bir değişiklik yapmadan uygulanabilir
OPKSSH'nin rolü ve avantajları
- OPKSSH, OpenPubkey'yi SSH ile entegre ederek SSO oturum açma üzerinden tek kullanımlık SSH anahtarları üretir
- Mevcut SSH protokolünde değişiklik gerektirmeden çalışır ve yapılandırma dosyasına yalnızca iki satır eklenerek uygulanabilir
-
Güvenlik iyileştirmesi
- Uzun süreli anahtarlar yerine tek kullanımlık SSH anahtarları kullanır → anahtar sızıntısı durumunda etkiyi azaltır ve anahtar ömrünü sınırlandırır
- Varsayılan olarak 24 saat sonra sona erer, ayarla değiştirilebilir
-
Kullanıcı kolaylığı iyileştirmesi
- Yalnızca
opkssh login komutunu çalıştırarak SSH anahtarı oluşturup oturum açılabilir
- SSH gizli anahtarını birden fazla bilgisayara kopyalamaya gerek yoktur
-
Yönetim görünürlüğü iyileştirmesi
- Anahtar tabanlı erişim yerine e-posta adresi tabanlı yaklaşım → kullanıcının kim olduğunun açıkça izlenmesini sağlar
bob@example.com gibi bir e-posta adresi erişim izin dosyasına eklenirse hemen erişim sağlanabilir
OPKSSH nasıl çalışır
- Kullanıcı
opkssh login çalıştırdığında:
- Geçici SSH açık/gizli anahtar çifti oluşturulur
- Tarayıcı üzerinden OpenID Provider'a (Google vb.) giriş yapılır
- Başarılı olursa, OpenPubkey protokolü aracılığıyla açık anahtar ve kullanıcı kimliğini içeren bir PK Token üretilir
.ssh dizinine PK Token içeren açık anahtar dosyası ile gizli anahtar dosyası kaydedilir
- SSH bağlantısı sırasında:
- SSH istemcisi, PK Token içeren açık anahtarı SSH sunucusuna gönderir
- Sunucu,
AuthorizedKeysCommand ile ayarlanmış OpenPubkey verifier aracılığıyla açık anahtarın geçerliliğini doğrular
- PK Token geçerliyse ve e-posta erişim izin listesinde yer alıyorsa bağlantı onaylanır
Teknik sorunların çözümü
- PK Token iletimi: PK Token, SSH sertifikasının genişletme alanı kullanılarak SSH açık anahtarına eklenir
- Sunucuda geçerlilik doğrulaması:
AuthorizedKeysCommand kullanılarak açık anahtar doğrulaması özel bir programa (OpenPubkey verifier) devredilir
- Açık anahtar eşleşmesinin doğrulanması: SSH oturumunu koruyan açık anahtarın, PK Token içindeki anahtarla eşleştiği kontrol edilir
Açık kaynak yapılması ve anlamı
- OPKSSH, Apache 2.0 lisansıyla GitHub üzerinde yayımlandı
- Daha önce prototip düzeyindeydi, artık ise tam SSH işlevselliğine sahip kararlı bir sürüm sunuyor
- Cloudflare bunu sürdürmüyor ya da garanti etmiyor, ancak kodu OpenPubkey topluluğuna bağışladı
Başlıca iyileştirmeler
- Gerçek kullanım için uygun SSH işlevleri eklendi
- Otomatik kurulum betiği sunuluyor
- Geliştirilmiş yapılandırma araçları dahil edildi
1 yorum
Hacker News görüşleri
step-caprojesistep-ca, OAUTH/OIDC sistemleri ve bulut sağlayıcılarıyla iletişim kurabiliyorssh-keygenkomutuyla yapılabildiği için yönetici açısından avantajlı