ssh -o PreferredAuthentications: “şifre” ile “klavye etkileşimli” arasındaki fark nedir?


36

Her ikisi de PreferredAuthentications=passwordve PreferredAuthentications=keyboard-interactiveşifre isterse, aralarındaki fark nedir?

Ssh PreferredAuthentications şifresiyle klavye-etkileşimli farkını kullanarak anahtar kelime kullandım ancak cevap bulamadım.

Fark ettiğim tek fark bilgi satırı dizeleridir ( user@host's password:vs. Password:):

$ ssh -o PreferredAuthentications=password,keyboard-interactive my-host
root@my-host's password:
Password:
Permission denied (gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive).

GÜNCELLEME (2018-04-09):

Kolay referans için, aşağıdaki SSH'den alınmıştır : jouell'in cevabında belirtildiği gibi TDG kitabı .

"keyboard-interactive"kullanıcı kimlik doğrulaması öncelikle PAMsunucu tarafında kimlik doğrulaması yapmayı amaçlamaktadır . Bir sağlamaktadır birden meydan-yanıt iletişim sunucu kullanıcısı, bir tepki olarak kullanıcı türleri için bir metin sorgusu gönderir hangi kullanıcı ile, ve bu süreç herhangi bir kaç kez tekrarlayabilirsiniz. Örneğin, PAMSSH için RSA güvenlik belirteci veya bir defalık şifre şeması kullanarak kimlik doğrulaması yapan bir modül ile yapılandırabilirsiniz . İnsanlar bununla karışır, çünkü varsayılan olarak, "keyboard-interactive"kimlik doğrulama genellikle yalnızca bir parola isteyen ve böylece tam olarak aynı görünen, yalnızca tek bir zorlama yanıt döngüsünde parola doğrulaması uygular"password"kimlik doğrulaması. Her ikisini de farklı amaçlar için kasten kullanmıyorsanız, son kullanıcı karmaşasını önlemek için birini veya diğerini devre dışı bırakmak isteyebilirsiniz.


1
Bkz RFC 4252 için şifre auth ve RFC 4256 için klavyenin-interaktif .
pynexj

Yanıtlar:


37

SSH protokolünün sayısız kimlik doğrulama yöntemi vardır. Parola ve klavye etkileşimli bunlardan ikisidir.

Parola doğrulaması tek bir şifre için basit bir istektir. Sunucu tarafından gönderilen belirli bir bilgi istemi yok. O seçer istemi etiketlemek için nasıl müvekkilimiz Yani ( "ana bilgisayarın şifresi @ kullanıcı" istemi OpenSSH dan müşterileri gibi ssh, sftpvs).

Klavye etkileşimli kimlik bilgilerinin parçalarının keyfi sayısı için daha karmaşık bir taleptir. Her bilgi parçası için sunucu bilgi istemi etiketini gönderir. Ayrıca, sunucunun genel "form" un uzunca bir tanımını yapmasını sağlar. Sunucu ayrıca hangi girişlerin gizli olduğunu (kullanıcı bunları yazarken gizlenmesi gereken) ve hangilerinin olmadığını da belirtebilir.

Çoğu durumda klavyeyle etkileşimli kimlik doğrulama , tek bir "gizli" şifre istemi istemek için kullanılsa da, şifre doğrulamada neredeyse hiçbir fark yoktur .

Protokol perspektifinden fark budur.


Uygulama açısından bakıldığında, OpenSSH sunucusu ile klavye etkileşimli kimlik doğrulama, örneğin genel PAM mekanizması veya Kerberos tarafından sağlanan iki faktörlü (veya çok faktörlü) kimlik doğrulamalara bağlanabilir .

Müşteri açısından bakıldığında, başka bir fark yerelleştirme. İle şifre doğrulaması , istemci yerelleştirebilirsiniz "Şifre" sunucu bir şifre soruyor bildiği için, etiket. İle klavye etkileşimli kimlik doğrulaması (Bu AI istihdam sürece) bir jenerik istemi, çünkü sunucunun tek şifre sadece soran bile, istemci, istemi lokalize edilemez.


2

'Parola'nın ne olduğunu zaten biliyorsunuz. Çok yüksek bir seviyede (değil tuğla düzey protokol şeyler) itibaren, 2FA Radius kullanarak kullanmak için o yöntemi olarak 'klavyenin etkileşimli' düşünmek ve / veya SecureID vb meydan ve tepki iletişim kutuları için sağlamaktadır: ssh.com güzel bir Tarih sahiptir bununla ilgili kısa açıklama. Klavyenin etkileşimli olduğunu vurgulamak için bir adım daha ileri gidiyor, parolanın altına düşen şemsiye. Saygılarımla yazarlara, biraz kafa karıştırıcı.

Ayrıca Salyangoz Kitabı tanımına bakınız . Bunu RSA korumalı kutularımız için sıklıkla kullanıyoruz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.