일부 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....