사용자 작업을 방지하려면 sshauthorized_key에서 sleep 명령을 사용하십시오.

사용자 작업을 방지하려면 sshauthorized_key에서 sleep 명령을 사용하십시오.

클라이언트의 SSH 연결을 허용하여 해당 컴퓨터에 다시 연결할 수 있도록 Ubuntu 서버를 설정 중입니다(역방향 SSH 터널). 클라이언트가 서버에서 어떤 작업도 수행하지 못하도록 비활성화하는 방법을 검색하고 다른 솔루션을 찾았지만 다음을 추가하여 서버의 특정 클라이언트에 대해 Authorized_key를 구성하는 것만큼 간단한 방법은 없었습니다.

command="sleep x seconds"

이 솔루션을 좋지 않게 만드는 중요한 것을 놓치고 있습니까?

답변1

여러 사용자에 대한 제한이 있는 경우 해당 사용자 그룹에 제한을 적용하도록 Match차단을 설정합니다 . /etc/sshd_config특정 SSH 키에 대한 제한이 있는 경우 제안한 경로로 이동하고 파일에서 명령을 차단하는 것을 고려할 것입니다 ~/.ssh/authorized_keys.

Match예방하다/etc/sshd_config

설명서를 읽고 Match연결 하위 ssh시스템 (예: .

# Add users to the UNIX group "restrictedusers"
Match Group restrictedusers
        AllowTCPForwarding yes
        X11Forwarding no
        AllowAgentForwarding no
        ForceCommand echo No logins permitted

유형~/.ssh/authorized_keys

command기존 또는 새 키 항목에 액세스 제어 옵션을 추가하면 X11Forwarding, 프록시 전달 등을 적용하거나 비활성화할 수 있습니다. 파일 변경 사항을 되돌리거나 조정하려면 원격 시스템에 로그인할 수 있는지 확인하세요.

restrict,port-forwarding,command="echo No logins permitted" ssh-ed25519 ed25519-public-key-code-goes-here...

두 경우 모두 호출자는 역방향 콜백이 설정되면 이를 설정해야 합니다. 예를 들어 다음은 로컬 포트를 remoteHost연결합니다 .50123/tcp123/tcp

ssh -fN -R 50123:localhost:123 remoteHost

무엇보다도 ~/.ssh/config호출자의 for 에서 이 모든 것이 준비 될 수 있으므로 콜백 remoteHost만 시작하면 됩니다 .ssh remoteHost

Host remoteHost
    ForkAfterAuthentication yes
    SessionType none
    # listenPort targetHost:targetPort
    RemoteForward 50123 localhost:123

관련 정보