SSH 키를 특정 IP 주소로 제한하는 방법은 무엇입니까?

SSH 키를 특정 IP 주소로 제한하는 방법은 무엇입니까?

일부 SSH 키를 사용하여 내 로컬 네트워크(192.168.1.*)에서 (공개적으로 액세스 가능한) SSH 서버에 로그인할 수 있기를 원하지만 로컬 네트워크 외부에서 키를 사용할 수 있게 하고 싶지 않습니다.
외부 액세스에 다른 키를 사용하고 싶습니다(두 경우 모두 동일한 사용자).

SSH에서 그런 일이 가능합니까?

답변1

예.

~/.ssh/authorized_keys서버의 파일에서 각 항목은 이제 다음과 같습니다.

ssh-ed25519 AAAAC3NzaC1lZSOMEKEYFINGERPRINT comment

(혹은 유사)

옵션을 포함할 수 있는 선택적 첫 번째 열이 있습니다. 이에 대해서는 설명서에 설명되어 있습니다 sshd.

옵션 중 하나는

from="pattern-list"

공개 키 인증 외에도 원격 호스트의 정식 이름이나 IP 주소가 쉼표로 구분된 패턴 목록에 표시되어야 함을 지정합니다. 모드에 대한 자세한 내용은 ssh_config(5)의 모드를 참조하세요.

호스트 이름이나 주소에 적용할 수 있는 와일드카드 일치 외에도 from 섹션에서는 CIDR 주소/마스크 길이 표기법을 사용하여 IP 주소를 일치시킬 수도 있습니다.

이 옵션의 목적은 선택적으로 보안을 강화하는 것입니다. 공개 키 인증 자체는 네트워크나 이름 서버 또는 그 어떤 것(키 제외)도 신뢰하지 않습니다. 그러나 누군가 어떻게든 키를 훔치면 키를 통해 침입자가 어디에서나 로그인할 수 있습니다. 세상에. 이 추가 옵션을 사용하면 도난당한 키를 사용하기가 더 어려워집니다(키 외에 이름 서버 및/또는 라우터도 손상되어야 함).

~/.ssh/authorized_keys이는 수정할 수 있어야 함을 의미합니다.

ssh-ed25519 AAAAC3NzaC1lZSOMEKEYFINGERPRINT comment

도착하다

from="pattern" ssh-ed25519 AAAAC3NzaC1lZSOMEKEYFINGERPRINT comment

pattern공용 DNS 이름, IP 주소 또는 일부 네트워크 블록 등 연결하려는 클라이언트 호스트와 일치하는 패턴은 어디에 있습니까?

from="192.168.1.0/24" ssh-ed25519 AAAAC3NzaC1lZSOMEKEYFINGERPRINT comment

(이렇게 하면 네트워크의 호스트에서만 이 키를 사용할 수 있습니다 192.168.1.*.)

답변2

from="192.168.1.0/24"파일 앞에 공개 키를 추가하면 됩니다 .authorized_keys. 전체 줄은 다음과 같아야 합니다.

from="192.168.1.0/24" ssh-rsa AAAA....

관련 정보