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
されています。ローカルでのみ実行できます」をエコーするコマンドに1つを追加します。
whichtty=$( ps hotty $$ | grep pts )
if [ $? -eq 0 ]; then
alias <software_name>='echo Restricted. Can only be run locally.'
else
echo
fi
pts
SSHセッションは、列に示すように疑似端末スレーブ()にありますが、TTY
すべてのpts
接続がセッションであるわけではありませんSSH
。例えば、またはのxterm
ようscreen
な疑似端末装置を生成するプログラムはpts
。したがって、このスクリプトの欠点はローカルxterm
またはscreen
。
ランチャーでソフトウェアを実行する必要があります。