問題は次の通りです。私は Windows を除くほぼすべての OS で動作するものを Python で作成したのですが、それを評価/使用/試用しようとしている人には Windows しか利用できないと言われました。利用可能なすべてのコンソール エミュレーターが失敗し、コードを書き直したり、それらのマシンに仮想マシンをインストールしたりするオプションがありません。
締め切りは 8 時間後です。私が考えているのは次のことです。
私のサーバーを使用して、そのファイルまたはエイリアス(ファイルを起動する)のみを起動できるパスワードなしのユーザー(たとえば、アプリ名を使用)を作成し、ssh サーバーを起動します。
その後、マシンに ssh で接続するだけでプログラムが起動します。これはテキストのみのコンソールなので、問題は発生しません。
問題は、Linux ユーザーをそこまで制限する方法がわからないことです。どうすればいいでしょうか? サーバーは単なるテスト マシンで、重要なデータは保持されておらず、通常はオフになっているかオフラインで動作しているため、セキュリティは大きな問題ではありません。ただ、これを動作させたいだけです。また、このソリューションは永続的なものではなく、明日 7 時間ほど動作させれば、その後は自由に操作して適切に動作させることができるはずです。
編集: 情報満載の長い回答には感謝しますが、今は午前 4 時半です。2 日近く起きていて、キーボードの上で気絶しそうです。ですから、重要でないことは追加しないでください。とても処理できません。
答え1
を実行するSSH認証キーを介してパスワードなしのログインを許可することができますssh-keygen
。これにより公開鍵と秘密鍵が生成されます。ログインするにはユーザーが秘密鍵を必要とし、サーバーは公開鍵を必要とします。~/.ssh/authorized_keys
詳細については、
パスワードを要求されないようにSSHを設定する方法
制限については、このユーザーに対して chroot 環境を作成することができます。これはより安全ですが、より多くの作業が必要になります。または、承認されたキーにいくつかの制限を設けることもできます。
command="/your/script/path/filename",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pry YOUR-SSH-KEY
詳細は以下をご覧くださいスクリプトと cron ジョブの SSH の管理
答え2
パスワードなしのユーザーを作成できませんでしたが、ユーザー名とパスワードのプログラム名を使用してユーザーを作成し、/etc/ssh/sshd_config ファイルに追加しましたMatch User testuser
。ForceCommand python /path/file.py
こうすることで、誰でもログインして (ログイン情報はそのサーバーの Web サイトにあります) プログラムを表示し、プログラムが終了すると自動的にログアウトできるようになります。