특정 IP 주소에서만 SSH 비밀번호 인증을 허용하려면 어떻게해야합니까?


103

특정 서브넷에서만 SSH 비밀번호 인증을 허용하고 싶습니다. 전 세계적으로 허용하지 않는 옵션이 있습니다 /etc/ssh/sshd_config.

# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes

선택한 IP 주소 범위에이 구성을 적용 할 수있는 방법이 있습니까?

답변:


156

용도 Match블록 끝에서/etc/ssh/sshd_config:

# Global settings
…
PasswordAuthentication no
…

# Settings that override the global settings for matching IP addresses only
Match address 192.0.2.0/24
    PasswordAuthentication yes

그런 다음 sshd 서비스에 구성을 다시로드하도록 지시하십시오.

service ssh reload

1
나는 이것을 시도했다 (192.168.0.0/16 대신) 그리고 ssh 서비스를 다시 시작할 때 나는 잠겼다. SSH가 연결을 거부했습니다. 이것이 왜 가능한지 아십니까?
Michael Waterfall

2
@MichaelWaterfall 너무 적은 정보로 말할 수는 없습니다. 새 구성을 검증 할 때까지 쉘을 계속 실행하십시오. ssh 서비스를 다시 시작해도 활성 연결에는 영향을 미치지 않습니다.
Gilles

28
아마도 sshd_config 중간에 Match 블록을 넣을 수 있습니다. 매치 라인은 다음 매치 라인까지 모든 다음 라인에 영향을 미치므로 파일의 끝에 있어야합니다.
Ken Simon

6
대답에 들여 쓰기에도 불구하고 sshd_configPython은 아닙니다.;)
Nick T

1
@frepie Match블록은 다음 Match지시문까지 또는 파일 끝까지 확장 됩니다. 그래서 마지막에 넣어야합니다.
Gilles

8

다음을 추가 할 수 있습니다.

AllowUsers user1@192.168.*.*, user2@192.168.*.*

이렇게하면 기본 동작이 변경되어 모든 호스트의 다른 모든 사용자를 거부합니다. OpenSsh 버전 5.1 이상 에서 사용 가능한 일치 블록 .


전화 단일 사용자 대신 그룹 허용
Lamar

@Lamar에서은 man sshd_config, 그것은 모양 AllowGroups과 같은 작품 AllowUsers,하지만 AllowUsers우선 순위를 인수 할 것으로 보인다 AllowGroups.
conradkdotcom
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.