さくらのレンタルサーバーライトでSSHを利用可能にした話。

はじめに

まず大前提ですけどサポート外です。
色々やって勝手にSSHできるようにしただけなんで注意してください。

さくらのレンタルサーバーライトプランではSSHは利用不可能ということになっています。

サポートに問い合わせるとかしないでください笑

前提知識

さくらのレンタルサーバーライトプランは月額131円くらいの爆安プランでありながらPHPの実行が可能なサーバーを借りられるプランですが、
DBが提供されてなかったりSSHが利用不可能だったりと色々不便があります。

公式としてはwordpressも利用不可能という文を出していたりします。

ですが実際にはWordPressは利用可能であり、提供されないDBの部分をなんとかしてやれば普通にホスティング可能です。
(SQLiteを使用する事でさくらのレンタルサーバーライトのみでWordPressが利用可能)

SSHも利用不可能とありますが、実際にはSSHを行うとpasswdコマンドが実行され、パスワード更新のプロンプトが返ってきて、
パスワードを更新すると自動的に切断されるという流れになります。

SSHでログイン自体は可能なので、なんとかしてpasswdコマンドから抜け出す事ができれば普通にSSHができるのではないかと考えました。

大まかな流れ

  1. WEBSHELLの設置
  2. WEBSHELLからOpenSSHの公開鍵を追加
  3. .cshrcファイルを更新
  4. SSHを行う

1. WEBSHELLの設置

まずはwebshellの設置を行います。

今回使用したshellはこちらです
github:p0wny-shell

webshellを設置するまでにさくらのレンタルサーバー上で色々な設定が必要なのでその解説も行います。

ドメインの追加

さくらのレンタルサーバーにドメインの追加を行います。
さくらの公式ドキュメント:ドメインを設定したい

今回はなんでも良かったので一番設定が早いさくらインターネット所有のサブドメインを使用しました。
さくらの公式ドキュメント:さくらインターネットのサブドメインを設定したい

WEB公開フォルダの設定

ドメインの追加が行えたらWEB公開フォルダという物を設定していきます。
このWEB公開フォルダとドメインを紐つけることで1契約でいくつものwebサービスを運営する事が可能となります。

WEB公開フォルダの設定のために、レンタルサーバーの~/wwwディレクトリ内に公開するファイルを設置する用のディレクトリを作成します。
今回はwebshellを設置するので、ディレクトリ名はshellにしました。

ディレクトリの作成方法はなんでも大丈夫ですが、さくらが提供しているファイルマネージャーを使用すると楽です。

~/www/shellディレクトリの作成が完了したら、ドメインの設定に戻り、
基本設定内のWeb公開フォルダ~/www/shellとなるように書き換え保存します。

なお、SSLの設定を行いたい方は今のタイミングでSSLを有効にする設定を行っておくのがベストです。

~/www/shellshell.phpを設置

実際に先ほどのshell.phpスクリプトを~/www/shellディレクトリに配置します。
セキュリティが不安な方は.htaccess.htpasswd~/www/shellディレクトリに設置して雑に認証をかけるといいと思います。

私は以下のような.htaccessを設置しました。

DirectoryIndex shell.php
Options -Indexes
AuthUserFile /home/ユーザー名/www/shell/.htpasswd
AuthType Basic
AuthName "webshell access"
Require valid-user
Satisfy all
Order deny,allow

.htpasswdの設定方法は自分で調べてください。

2. WEBSHELLからOpenSSHの公開鍵を追加

SSHを行う際に公開鍵を登録しておくと楽でいいです。

WEBSHELL上から
$ curl https://github.com/ユーザー名.keys >> /home/ユーザー名/.ssh/authorized_keys
とコマンドを叩いてgithubに公開してる鍵をimportするだけです。

3. .cshrcファイルを更新

ユーザーのホームディレクトリに設置されている.cshrcファイルの1行目にbashなどのさくらのレンタルサーバーに最初からインストールされてるshellを実行するコマンドを追記します。

$ cd /home/ユーザー名
$ cp .cshrc .cshrc.bac
$ echo "bash" > .cshrc
$ cat .cshrc.bac >> .cshrc

このコマンドを実行することにより.cshrcのバックアップ.cshrc.bacが作成され、.cshrcの1行目にbashが追加されます。

4. SSHを行う

実際にSSHを行います。
さくらのレンタルサーバーの初期ドメインに対してユーザー名でログインします

$ ssh ユーザー名@ユーザー名.sakura.ne.jp

これでSSHでログインでき、bashが開くはずです。

5. ログアウト

exitなどでログアウトを行うと、passwdコマンドが実行されてしまいます。
これは無視してControl+Cでもしてください。

解説

さくらのレンタルサーバーライトではSSHログインを行うと
csh -c /usr/bin/passwdが実行されるようです。

そのため、cshが起動してすぐに実行される.cshrcにbashを起動するように設定をしてあげるだけでSSHが可能となります。

やってることとしてはただそれだけなので、bashを終了すると、ログイン時の処理が再開され、csh -c /usr/bin/passwdが実行。
passwdコマンドのコンソールが返ってくる。

という流れとなります。


ここから下は特にみる価値のない備忘録です。

やったことまとめ

  1. WEB SHELLの設置
    あっさりwebshellの設置ができました。
    制限されてたりするのかなと思っていたので拍子抜けしました。

  2. OpenSSHコマンドを使用して踏み台サーバーに接続
    これは意味がなかったです。
    bashが起動できればそこから踏み台サーバーにアクセスできますし、
    webshell上からアクセスできるようにするのにも手間がかかりました。


投稿日

カテゴリー:

投稿者:

タグ:

コメント

“さくらのレンタルサーバーライトでSSHを利用可能にした話。” への1件のコメント

  1. […] さくらのレンタルサーバーライトでSSHを利用可能にした話。 […]

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です