はじめに
まず大前提ですけどサポート外です。
色々やって勝手にSSHできるようにしただけなんで注意してください。
さくらのレンタルサーバーライトプランではSSHは利用不可能ということになっています。
- さくらのレンタルサーバーライトプラン
https://rs.sakura.ad.jp/lite.html
サポートに問い合わせるとかしないでください笑
前提知識
さくらのレンタルサーバーライトプランは月額131円くらいの爆安プランでありながらPHPの実行が可能なサーバーを借りられるプランですが、
DBが提供されてなかったりSSHが利用不可能だったりと色々不便があります。
公式としてはwordpressも利用不可能という文を出していたりします。
ですが実際にはWordPressは利用可能であり、提供されないDBの部分をなんとかしてやれば普通にホスティング可能です。
(SQLiteを使用する事でさくらのレンタルサーバーライトのみでWordPressが利用可能)
SSHも利用不可能とありますが、実際にはSSHを行うとpasswd
コマンドが実行され、パスワード更新のプロンプトが返ってきて、
パスワードを更新すると自動的に切断されるという流れになります。
SSHでログイン自体は可能なので、なんとかしてpasswd
コマンドから抜け出す事ができれば普通にSSHができるのではないかと考えました。
大まかな流れ
- WEBSHELLの設置
- WEBSHELLからOpenSSHの公開鍵を追加
.cshrc
ファイルを更新- 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/shell
にshell.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
コマンドのコンソールが返ってくる。
という流れとなります。
ここから下は特にみる価値のない備忘録です。
やったことまとめ
WEB SHELLの設置
あっさりwebshellの設置ができました。
制限されてたりするのかなと思っていたので拍子抜けしました。OpenSSHコマンドを使用して踏み台サーバーに接続
これは意味がなかったです。
bashが起動できればそこから踏み台サーバーにアクセスできますし、
webshell上からアクセスできるようにするのにも手間がかかりました。
コメントを残す