SSHが使えないレンタルサーバにLinuxコマンドを入力する方法

SSHが使えないレンタルサーバにLinuxコマンドを入力する方法

Posted at April 16,2014 1:55 AM
Tag:[Linux, SSH]

SSHが使えないレンタルサーバにLinuxコマンドを入力する方法を紹介します。

1.はじめに

レンタルサーバでは、SSH(TeraTermなどでターミナルを起動してLinuxのコマンドを投入できる環境)が通常用意されているのですが、格安プランはオプションを絞ることで安く提供するため、機能的に優先度の低いSSHが使えないケースが少なくありません。

そういうプランのサーバでも、Linuxコマンドを投入して作業したいことがあるのですが、そのための解決方法です。

ウェブ制作に携わっている方であればより最適な方法で実践されている気がしますが、お手軽な方法ということでエントリーしてみました。

2.SSHが使えないレンタルサーバでコマンドを入力する

SSHが使えないレンタルサーバでコマンドを入力するには、以下の手順が考えられます。

  • Linuxコマンドを実行するCGIファイルを作る
  • CGIファイルをサーバにアップロードする
  • ブラウザからCGIにアクセスする
  • CGIにコマンドを入力する

ということで、Linuxコマンド入力用CGIを作り、コマンドを実行するまでの手順を紹介します。

ここで紹介するサンプルではcdコマンドなどは使えませんが、FTPだけでは行えない作業を実行することができると思います。

3.注意事項

本エントリーではセキュリティなどに言及していませんが、可能であればCGIを実行するディレクトにベーシック認証などをあらかじめ設定してください。

また、CGIにrmコマンドなどを誤って投入しないよう、十分気をつけてください。

利用したCGIファイルは作業終了後、速やかに削除してください。

4.コマンドを実行するCGIファイルを作る

まず、次の内容を任意のCGIファイル名(xxxxx.cgi)で保存します(ここでは「test.cgi」というファイル名で説明を進めますがセキュリティ上、別の名前にしてください)。

ファイル名にあわせて、プログラム中のform要素のaction属性値(赤色部分)に同じファイル名を設定してください。

このプログラムは、フォームに入力した内容をLinuxサーバ上でコマンドとして実行するものです。CGIはPHPやPerlなどで作っても構いませんがここではbashで書きました。

#!/bin/sh
 
value=`echo "${QUERY_STRING}" | sed -e "s/.*=\(.*\)/\1/"`
test=`echo "${value}" | tr '+' ' ' | tr '%' '=' | nkf -WwmQ`
 
cat <<EOF1
Content-Type: text/html
 
<html><head><title>test</title></head>
<body>
<form method="get" action="./test.cgi">
<input type="text" name="command" value="${test}" />
<input type="submit" value="Go" />
</form>
EOF1
 
echo "<pre>"
${test}
echo "</pre>"
 
cat <<EOF2
</body>
</html>
EOF2

この内容をそのままコピーするときは、空行の半角スペースを必ず削除してください。

また、改行コードはLFで保存してください。

ファイルの詳細は「bashでCGIを実行する」を参照してください。

5.CGIファイルをサーバにアップロードする

このファイルを利用したいレンタルサーバにアップロードします。

アップロード後、パーミッションを「705」や「755」など、実行権をつけてください。

6.ブラウザからCGIにアクセス

ブラウザからこのCGIにアクセスすると次のような画面が表示されます。

ブラウザからCGIにアクセス

7.CGIにコマンドを入力する

フォームに「ls -l」と入力して「Go」をクリックすれば、実行結果が表示されます。

CGIにコマンドを入力

関連記事
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)