사용자별 구성 파일에 `ForceCommand`를 넣습니다.

사용자별 구성 파일에 `ForceCommand`를 넣습니다.

나는 노력한다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/configSSH 구성용이기도 합니다 .고객즉, SSH 연결을 설정할 때 발생하는 일을 수정합니다.밖의그 시스템. 사용자 제한은 서버에서 이루어져야 하며 기록이 존재하는 sshd_config유일한 장소입니다 . ForceCommand또한 말씀하신 대로 Include클라이언트 구성에만 존재하므로 a) 적절한 명령을 사용하여 컴퓨터에 넣거나 ForceCommandb) 어디에도 넣지 않는 것이 좋습니다.sshd_configMatchForceCommand

물론 일부 외부 시스템을 사용하여 다양한 파일에서 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.

관련 정보