나는 노력한다SSH 터널 사용자 제한.
# sudo cat /home/user/.ssh/config
Banner none
ChrootDirectory /home/%u
PasswordAuthentication no
AllowTcpForwarding yes
X11Forwarding no
AllowAgentForwarding no
ForceCommand /bin/false
그러나 이들 중 어느 것도 효과가 없는 것 같습니다.
/home/user/.ssh/authorized_keys
앞에 추가 하면 no-pty,no-agent-forwarding,no-X11-forwarding,command="/bin/false"
작동하지만 이러한 지시어를 영구 구성에 포함하고 싶습니다.
업데이트하지 않고 이런 방식으로 사용자를 제한할 수 있나요 /etc/ssh/sshd_config
?
고쳐 쓰다나도 알아요 Match User
. Match Group
요점은 그것을 넣는 것입니다.사용자별구성.
답변1
와 관련하여 /home/user/.ssh/config
이는 순전히 SSH 클라이언트 자체를 위한 것이며 시스템에서 사용됩니다.시작하다SSH 연결. 그러니 여기서는 쓸모가 없습니다.
사용자별 구성을 원하기 때문에 추가 Match User
또는 Match Group
항목 가능성을 배제했다는 질문이 업데이트되었습니다 ./etc/ssh/sshd_config
특정 사용자를 자신의 홈 디렉토리로 루트 지정하려면 특히 Match Group
및 를 사용하여 이와 같은 그룹 멤버십을 활용할 수 있습니다 ChrootDirectory %h
.
Match Group jailed
Banner none
ChrootDirectory %h
PasswordAuthentication no
AllowTcpForwarding yes
X11Forwarding no
AllowAgentForwarding no
ForceCommand /bin/false
답변2
# sudo cat /home/user/.ssh/config
업데이트
Match User
핵심Match Group
은 사용자 별 구성에 넣는 것입니다.
이와 같은 것은 ForceCommand
사용자가 할 수 있는 일을 제한할 수 있습니다. 이는 사용자의 홈 디렉토리에 있는 구성 파일에서는 제대로 작동하지 않습니다. 왜냐하면 구성을 변경할 수 있거나 최소한 액세스할 수 없게 만들 수 있기 때문입니다(예: mv ~/.ssh ~/.ssh_disabled
).
물론 .ssh/config
SSH 구성용이기도 합니다 .고객즉, SSH 연결을 설정할 때 발생하는 일을 수정합니다.밖의그 시스템. 사용자 제한은 서버에서 이루어져야 하며 기록이 존재하는 sshd_config
유일한 장소입니다 . ForceCommand
또한 말씀하신 대로 Include
클라이언트 구성에만 존재하므로 a) 적절한 명령을 사용하여 컴퓨터에 넣거나 ForceCommand
b) 어디에도 넣지 않는 것이 좋습니다.sshd_config
Match
ForceCommand
물론 일부 외부 시스템을 사용하여 다양한 파일에서 SSH 서버 구성을 넣을 수 있으며 그 중 가장 간단한 것은
cat /etc/ssh/sshd_config.d/*.conf > /etc/ssh/sshd_config
.
답변3
내 마음에 가장 먼저 떠오르는 것은 다음과 같습니다.Include
지시하다.
그러나 그것은내부에서만 작동/etc/ssh/ssh_config
(ssh를 클라이언트로), 호출 시 /etc/ssh/sshd_config
(ssh를 서버로),"를 던진다.잘못된 구성 옵션: 포함"오류 - 분명히,클라이언트에 대해서만 구현됩니다.
문제는 내가 필요한 지시문(예 ForceCommand
: )이 서버 측을 위한 것이므로 에 추가할 때 무시된다는 것입니다 ssh_config
.