Soru Bazı SSH kullanıcılarını yalnızca publickey kimlik doğrulamasıyla kısıtlamanın en iyi yolu (şifre kimlik doğrulamasını devre dışı bırak)


Mac OS X Server.app'ı Yosemite üzerinde çalıştırıyorum ve varsayılan ayarları olan kullanıcılar için SSH'yi etkinleştirdim. /etc/sshd_config (varsayılan olarak etkinleştirilmiş publickey ve parola auth). Ancak, git yerel kullanıcı SADECE SSH üzerinden publickey erişim hakkına sahiptir.

Tam açıklama, Server.app bazı ek Kerberos ve GSSAPI seçeneklerine olanak sağlar (her ne kadar bu sorularımın nasıl etkilendiğine% 100 emin değilim):

# Kerberos options
KerberosAuthentication yes
KerberosOrLocalPasswd yes
KerberosTicketCleanup yes

# GSSAPI options
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
GSSAPIStrictAcceptorCheck yes
GSSAPIKeyExchange no

/etc/sshd_config aşağıdakileri söylüyor:

# To disable tunneled clear text passwords both PasswordAuthentication and
# ChallengeResponseAuthentication must be set to "no".

Ancak, ChallengeResponseAuthentication eşleşme bildirimlerinde izin verilmez, bu nedenle yalnızca şifre kimlik doğrulamasını devre dışı bırakmayı denedim:

Match User git
      PasswordAuthentication no

Bu işe yaramaz - hala git@my.server :( için kullanıcı adı / şifre ile giriş yapabiliyordum

Ancak ekleyerek KbdInteractiveAuthentication no düzgün çalışıyor gibiydi:

Match User git
      PasswordAuthentication no
      KbdInteractiveAuthentication no

Şimdi anladım Permission denied (publickey,gssapi-keyex,gssapi-with-mic) Ortak anahtar olmadan giriş yapmaya çalışırken. Bu, publickey haricinde hala oturum açma izni verebilecek yöntemler olduğunu gösteriyor gibi görünüyor. git kullanıcı (ör. gssapi-keyex ve gssapi-with-mic)

Daha iyi bir yaklaşım, kimlik doğrulama yöntemini publickey:

Match User git
    AuthenticationMethods publickey

Bu, 'İzin reddedildi (publickey) yanıtını verir.

Sorular:

  1. Arasındaki fark nedir ChallengeResponseAuthentication ve KbdInteractiveAuthentication? Neden ki KbdInteractiveAuthentication eşleşme ifadelerinde izin verildi ancak ChallengeResponseAuthentication?
  2. İle herhangi bir olumsuz / güvenlik endişesi var mı AuthenticationMethods publickey yaklaşım?
  3. (Eğer bana yardım edebilmek için Bonus gssapi-keyex/gssapi-with-mic ve bunlar etkin olan GSSAPI / Kerberos seçenekleriyle nasıl ilişkilendirilir?

7
2018-03-30 21:23


Menşei




Cevaplar:


Aradaki farkın güzel bir özeti var. ChallengeResponseAuthentication ve KbdInteractiveAuthentication en http://blog.tankywoo.com/linux/2013/09/14/ssh-passwordauthentication-vs-challengeresponseauthentication.html - Özet, ChallengeResponse'nin genellikle şifre sormaktan vazgeçmesi (ancak etkileşimli olarak tedarik edilmesinde ısrar ediyor).

KbdInteractiveAuthentication ve ChallengeResponseAuthentication farklı şeylerdir. Sadece o ChallengeResponseAuthentication Basit durumlarda sadece bir şifre sorabilir.

ChallengeResponseAuthentication genel bir ayardır ve bir Match yan tümce - bakın sshd_config Ayrıntılar için man sayfa.

Açıkça belirtmek AuthenticationMethods publickey için git Kullanıcı iyi çalışmalı ve istemediğinizleri devre dışı bırakmaktan daha iyidir (liste değişebilir).

gssapi Bir bilgisayarda çalışıyorsanız seçenekler devreye girer Kerberos ortam (Active Directory etki alanı gibi).


5
2018-04-15 20:35



Yardımcı link için teşekkürler. Yukarıdaki 1 numaralı sorunun 2. kısmı hakkında bir fikrin var mı? Neden ki KbdInteractiveAuthentication eşleşme ifadelerinde izin verildi ancak ChallengeResponseAuthentication? Bunlar aslında farklı şeyler mi, yoksa isim bir blokta değişiyor mu? - cdwilson
Cevaplamak için güncellemeye bakın (birlikte sshd_config detaylar için man sayfa - Paul Haldane
Ödülünü verdim çünkü cevabı takdir ediyorum, ama adam sayfası ve sağladığınız diğer bağlantılar hala aradaki farkların iyi bir açıklamasını yapmıyor. KbdInteractiveAuthentication ve ChallengeResponseAuthentication (ve neden eşleşme sadece kabul eder KbdInteractiveAuthentication). Siz (veya başka biri) daha fazla ayrıntı sağlamak için bu cevabı düzenleyebilirseniz, bunu takdir ediyorum. - cdwilson