Vraag hoe SSH login uit te schakelen met een wachtwoord voor sommige gebruikers?


Op Linux (Debian Squeeze) zou ik SSH-login willen uitschakelen met behulp van een wachtwoord voor sommige gebruikers (geselecteerde groep of alle gebruikers behalve root). Maar ik wil login met certificaat voor hen niet uitschakelen.

Bewerk: hartelijk dank voor een gedetailleerd antwoord! Om een ​​of andere reden werkt dit niet op mijn server:

Match User !root
PasswordAuthentication no

... maar kan gemakkelijk worden vervangen door

PasswordAuthentication no
Match User root
PasswordAuthentication yes

145
2018-06-30 14:31


oorsprong


Misschien komt het door je inzinking? - nil
Het is de moeite waard te vermelden dat die regels onder overeenkomst aan het einde van het bestand moeten staan - zidarsk8
! root werkt ook niet voor mij. De tweede aanpak deed het. - natenho
Ik heb gevallen gezien waar Match User "!root,*" deed het werk. - Roman Hocke


antwoorden:


Proberen Match in sshd_config:

Match User user1,user2,user3,user4
    PasswordAuthentication no

Of per groep:

Match Group users
    PasswordAuthentication no

Of, zoals vermeld in de opmerking, door ontkenning:

Match User !root
    PasswordAuthentication no

Merk op dat match effectief is "tot een andere Match-regel of het einde van het bestand." (de insprong is niet significant)


156
2018-06-30 16:13



verkiezen Match user !root in dit geval - 84104
Geweldig, ik wist niets van de overeenkomst-syntaxis. Een suggestie die ik echter zou willen doen, is of dit een open server is, ik zou root-login via SSH helemaal niet toestaan. Waarschijnlijk geen grote deal als het intern is ... - Safado
@SpacemanSpiff Dat is wat a) sterke wachtwoorden en b) denyhosts / fail2ban zijn voor. - ceejayoz
@ deed02392 Je kunt een sleutel beschouwen als een echt, echt sterk wachtwoord als je wilt. - ceejayoz
Het is zoveel sterker dat het niet in hetzelfde ballenpark is, dat was mijn punt. Wachtwoordverificatie moet ook voor root worden uitgeschakeld en sleutels zijn alleen toegestaan ​​voor aanmeldingen. - deed02392


Match in sshd_config werkt goed. Je zou ... moeten gebruiken Match all om het overeenkomstblok te beëindigen als u openssh 6.5p1 of hoger gebruikt. Voorbeeld:

PasswordAuthentication no
Match User root
PasswordAuthentication yes
Match all

12
2017-11-27 22:13





Er zijn een paar manieren waarop je dit kunt doen - ten eerste zou je een tweede sshd daemon kunnen uitvoeren op een andere poort met verschillende config - het is een beetje een hack, maar met wat chroot-werk zou het prima moeten werken.

U kunt ook wachtwoordverificatie toestaan, maar de wachtwoorden vergrendelen voor iedereen behalve de enige gebruiker. De gebruikers met geblokkeerde wachtwoorden zullen dat nog steeds zijn in staat om te authenticeren met openbare sleutels.


1
2018-06-30 15:42





je kunt gewoon naar het bestand / etc / ssh / sshd_config gaan en een regel toevoegen Toestaan ​​-> AllowUsers user1 To Deny ---> DenyUsers user2

we kunnen toestaan ​​/ weigeren inloggen voor een bepaalde set hosts met behulp van de hosts.allow of hosts.deny bestanden in de map / etc


-1
2018-03-04 06:10