SSH를 통해 사용되는 명령이 블랙리스트에 추가될 수 있나요?

SSH를 통해 사용되는 명령이 블랙리스트에 추가될 수 있나요?

SSH를 통해 특정 명령이 실행되는 것을 방지하는 방법이 있는지 아는 사람이 있습니까?

firefox예를 들어 누군가가 SSH를 실행 하거나 SSH를 통해 실행하는 것을 원하지 않지만 matlab해당 컴퓨터에 로컬인 경우에는 괜찮을 것입니다.

제가 이 질문을 하는 이유는 라이선스 계약에 원격 사용 정책이 없는 소프트웨어가 있기 때문입니다.

답변1

다양성헌터 S. 톰슨의 답변:

쉘 시작 파일에서:

if [ -n "$SSH_CLIENT" ]; then
   alias matlab='echo "restricted to local users only, sorry"'
   alias firefox='echo "restricted to local users only, sorry"'
fi

이는 누구든지 이러한 별칭을 우회하는 것을 방지하지 못하므로 제한된 각 소프트웨어에 대한 쉘 스크립트를 생성할 수 있습니다.

예를 들어: /usr/local/bin/matlab:

#!/bin/sh

if [ -n "$SSH_CLIENT" ]; then
   echo 'restricted to local users only, sorry' >&2
   exit 1
fi

exec /real/path/to/matlab

이는 사용자가 SSH_CLIENT환경 변수를 설정 해제하거나 실제 matlab프로그램을 직접 실행하는 것을 막지는 않습니다.

답변2

이것을 추가하면 ~/.bashrc현지인만 tty소프트웨어를 실행할 수 있습니다.

사용자가 via 를 통해 로그인하면 ssh서버는 alias단순히 "제한됨. 로컬에서만 실행할 수 있습니다."를 에코하는 명령에 하나를 추가합니다.

whichtty=$( ps hotty $$ | grep pts )

if [ $? -eq 0 ]; then
    alias <software_name>='echo Restricted. Can only be run locally.'
else
    echo 
fi

ptsSSH 세션은 열에 표시된 것처럼 의사 터미널 슬레이브( )에 있지만 TTY모든 pts연결이 세션인 것은 아닙니다 SSH. 예를 들어, xterm또는 screen와 같은 의사 터미널 장치를 생성하는 프로그램은 pts. 따라서 이 스크립트의 단점은 로컬 xterm이나 screen.

런처에서 소프트웨어를 실행해야 합니다.

관련 정보