Bazı kullanıcılar için şifreyle SSH girişini nasıl devre dışı bırakabilirim?


165

Linux'ta (Debian Squeeze) Bazı kullanıcılara (seçilen grup veya root hariç tüm kullanıcılar) şifreyle SSH girişini devre dışı bırakmak istiyorum. Ancak, onlar için sertifika kullanarak girişleri devre dışı bırakmak istemiyorum.

düzenleme: ayrıntılı cevap için çok teşekkürler! Nedense bu benim sunucumda çalışmıyor:

Match User !root
PasswordAuthentication no

... ancak kolayca değiştirilebilir

PasswordAuthentication no
Match User root
PasswordAuthentication yes

Belki de girintiniz yüzündendir?
nil


1
! root ayrıca benim için çalışmıyor. İkinci yaklaşım hile yaptı.
natenho

İşin nerede yapıldığı vakaları gördüm Match User "!root,*".
Roman Hocke

Yanıtlar:


179

Deneyin Matchin sshd_config:

Match User user1,user2,user3,user4
    PasswordAuthentication no

Veya gruba göre:

Match Group users
    PasswordAuthentication no

Veya yorumda belirtildiği gibi, olumsuzlama ile:

Match User !root
    PasswordAuthentication no

Eşleşmenin "başka bir Eşleşme çizgisine veya dosyanın sonuna kadar" etkili olduğunu unutmayın . (girinti anlamlı değil)


4
Match user !rootbu dava için tercih et
84104

1
Awesome, Match sözdizimini bilmiyordum. Yine de önereceğim bir öneri, eğer bu halka açık bir sunucuysa, SSH üzerinden kök girişine izin vermem. Muhtemelen büyük bir anlaşma olmasa da Dahili olsa da ..
Safado

4
@SpacemanSpiff Bu, a) güçlü şifreler ve b) denyhosts / fail2ban içindir.
ceejayoz

2
@ deed02392 İsterseniz gerçekten, gerçekten güçlü bir şifre olarak düşünebilirsiniz.
ceejayoz

4
Aynı top parkında değil, benim açımdan çok daha güçlü. Parola kimlik doğrulaması, root için de devre dışı bırakılmalı ve yalnızca oturum açma için anahtarlara izin verilmelidir.
deed02392

21

Matchiçinde sshd_configiyi işler. Sen kullanmalıdır Match allYukarıdaki openssh 6.5p1 veya kullanıyorsanız maç bloğu sonlandırmak için. Örnek:

PasswordAuthentication no
Match User root
PasswordAuthentication yes
Match all

Benim için işe yaramadı ...
Dimitrios

3

Bunu yapmanın birkaç yolu vardır - ilk önce, farklı bir bağlantı noktası üzerinde farklı bir bağlantı noktası üzerinde ikinci bir sshd arka plan programı çalıştırabilirsiniz - biraz kesmek, ancak bazı chroot çalışmaları ile iyi çalışması gerekir.

Ayrıca, şifre doğrulamasına izin verebilir, ancak bir kullanıcı dışındaki herkes için şifreleri kilitleyebilirsiniz. Şifreleri kilitli olan kullanıcılar hala ortak anahtarlarla kimlik doğrulaması yapabileceklerdir.


-1

basitçe / etc / ssh / sshd_config dosyasına gidip bir satır ekleyebilirsiniz İzin vermek için -> AllowUsers user1 Reddetmek ---> DenyUsers user2

/ etc klasöründe bulunan hosts.allow veya hosts.deny dosyalarını kullanarak belirli bir ana bilgisayar kümesi için oturum açabilir / reddedebiliriz


-1

Bazı güvenlik nedenlerinden dolayı, belirli kullanıcı SSH'lerinin Linux kutusuna erişimini engellemeniz gerekebilir.

Sshd_config dosyasını düzenleyin, konum bazen Linux dağıtımına bağlı olarak farklılık gösterir, ancak genellikle / etc / ssh / dizininde bulunur.

Kök olarak oturum açtığınızda dosyayı açın:

# vi /etc/ssh/sshd_config

Config dosyasının sonuna bir satır ekleyin: -

DenyUsers username1 username2 username3 username4

Kaydet ve SSH servislerini yeniden başlat. Temel olarak kullanıcı adı1, kullanıcı adı2, kullanıcı adı3 ve kullanıcı adı4 SSH girişine izin verilmez.

Aynısını yeniden başlatmak için aşağıdaki komutu çalıştırın: -

# systemctl restart sshd

Gereksinim yapıldı. Lütfen bu kullanıcılardan ssh alın ve "Erişim Reddedildi" hatası alırsınız


1
Soru, şifre girişini devre dışı bırakmakla ilgiliydi (ancak giriş yapılmasını anahtar kimlik doğrulamasıyla devam ediyor).
Gerald Schneider
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.