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されています。ローカルでのみ実行できます」をエコーするコマンドに1つを追加します。

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

ランチャーでソフトウェアを実行する必要があります。

関連情報