ヤマモトです。お疲れ様です。
先日、ブログ活動の振り返り時に「pythonを自動実行したい」という話をした。
ででで。その過程で当ブログが稼働しているレンタルサーバー(ConoHa WING)にアクセスして、自作のプログラムを自動実行できないかな~
なんて画策している次第。
今日はその前段階で、「そもそもレンタルサーバーにアクセスできる??」ってところから話はスタート。
ConoHa WINGとは
はい。まずそもそもですけど、ConoHa Wingって何ぞやって方もいらっしゃると思うのでそこからご紹介。
まあ簡単に言うと格安でWebサーバー用の環境をレンタルできるところ。
ブログ環境って有名どころだと「はてなブログ」さんとか「アメブロ」さんとかあると思うんだけど、こちらさんは整ったプラットフォームを提供されるので簡単に始められる分、カスタマイズ性とか特にドメイン指定が難しかったりなど制約が多かったりする。
対して、自由にブログや他webサイトを作るならそれらを提供する「環境」や「ドメイン(URL、住所的な)」を用意する必要があり、その「環境」を提供するサービスがConoHa WINGさんというわけ。
他レンタルサーバーのサービスって色々あるし、なんならAWSでもええやん、っていう人もいるかと思うが、ヤマモトが選んだ理由はコスパかな。詳しくはリベ大ブログでも紹介されているのでこちらを。
ConoHa WINGへのアクセス可否
普通に考えたら、ただのサーバーなんだからSSHとかでアクセスできそうな気もするが、例えばサーバーのサービスとして「セキュリティ的にwebのポートしか開けてない!」とかもあり得る。
ということでまずは下調べを実施。
ConoHa WINGのレンタルサーバーへのアクセスしてそうな人調査
シンプルに、「ConoHa WING python 実行」みたいな検索文言で、レンタルサーバーへリモートアクセスして自動実行してそうな人をググって検索。
お。予想通り見つかった。
今回の目的は「レンタルサーバーへリモートアクセスできるか」までだったが、pythonも使えそうってところまでわかっちゃったw (不意のネタバレ)
上記記事ではSSHのやり方までは触れてないが、まあSSHだし、IPアドレスとポート番号とその他諸々が分かればいけるっしょ。
レンタルサーバーへSSH接続をトライ
誰かが接続できていることはわかった。だがしかし、自分で接続できて初めて信用に値すると言える。
ということで、家庭教師はいないけど、トライ。
SSHについて
以降、当たり前のようにSSHについて触れていくが、あまり詳しくない方(SSHとか鍵交換認証)や、わからない方は適宜ググってみよう。IT業界だと当たり前にやってる作業です。
- 鍵交換方式による認証
- SSHの公開鍵認証における良くある誤解の話 – Qiita
- 正確だけど応用編の記事。なんでパスワード認証じゃダメなのかがわかりやすい。
アクセス先情報の確認
とりあえずConoHa Wingのサーバ管理ページに行くと、おあつらえ向きに「SSH」の項目を発見。
上記の「SSH」の項目へアクセス後、右上に「SSH Key」のボタンが表示されるので、それをクリックしてSSH接続に用いるキーペアーを生成する。生成後、ユーザー側(ここでいうヤマモト)には秘密鍵が渡されるので、秘密鍵をダウンロードする。(XXXXX.pem みたいなファイル名)
セキュリティの観点もあるので、秘密鍵は無くさず大事に保管しましょう。
鍵の生成後、上記サイトで鍵の情報を見られるようになるので、ここでホスト名、ポート番号、ユーザー名を控えておく。
Windows OSからSSHで入ってみる。
ヤマモトのマイPC(Windows 11)からSSHで入ってみる。
といってもWindowsでそもそもSSHっていうのが実はめんどくさい。
やり方は色々あるが、ド定番なやつとUNIXライクなやつ2パターンをやってみる。
ド定番な方法: TeraTermでSSH
WindowsでSSHと言ったら真っ先に思いつく人も多いだろう「TeraTerm」。簡単に言うと、telnetやSSH等のリモートアクセス実行専用のWindowsアプリ。
インストールも簡単だし、初期設定とかもほぼなく使えちゃうので、まあ楽っちゃ楽。ちなみにインストールは以下の公式ページからできる。
インストール後、起動するとログイン情報が聞かれる。まずは上記で控えておいた「ホスト名」と「ポート番号」を入力。サービスの指定は「SSH」を選択する。
この後、サーバーへアクセスしに行くわけだが、ホスト名やポート番号が間違っていたら接続できないので注意。
上手くいけば認証の画面に遷移する。この画面では「ユーザー名」を入力し、認証方式で「RSA/DSA/ECDSA/ED25519鍵を使う」を選択。右側で鍵のパスを入力できるので、ダウンロードして大切に保管しているであろう秘密鍵のパスを指定する。
あとは「OK」を押して接続。ここまで間違いなくできていれば問題なくSSH接続できる。接続後はCUIの画面が表示される。
UNIXライクな方法: Ubuntu on Windows でSSH
上記のTera TermでSSHする方法はWindowsユーザーからするとド定番なのだが、Mac OSやLinuxユーザーからすると、「え、めんどくさ・・・」って思う人も多いと思う。
UNIX系のOSなら、Terminalを起動してSSHってコマンド打てば終わりだからね。そりゃそうだ。
なので、UNIXライクな方法でWindowsからもSSHできないかを試したい。ヤマモトも個人的にはこっちの方が慣れているのでわかりやすい。
じゃあまずUbuntu on Windows(WSL)のインストールから、、、って紹介し始めると長くなるので、ここは興味ある方だけどうぞ。以降はWSLを入れた前提で話していきます。
やり方は簡単。
WSLを起動して、以下コマンドをたたくだけ。
yamamoto@my-windows-pc:~$ ssh -i /PATH/TO/XXXXXX.pem c3XXXXX@XXXXX.conoha.ne.jp -p XXXXXX
書き方や各オプションについてはこちら。
- -i: 秘密鍵を指定。ここでは秘密鍵のパスを指定する。
- c3XXXXX@XXXXX.conoha.ne.jp: ユーザー名とホスト名。それぞれ「@」で区切る。
- -p: ポート番号を指定。
じゃあ早速ログインしてみよう。
yamamoto@my-windows-pc:~$ ssh -i /PATH/TO/XXXXXX.pem c3XXXXX@XXXXX.conoha.ne.jp -p XXXXXX
...
Warning: Permanently added '[XXXXX.conoha.ne.jp]:XXXXX' (ECDSA) to the list of known hosts.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'XXXXXX.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "XXXXXX.pem": bad permissions
c3XXXXX@XXXX.conoha.ne.jp: Permission denied (publickey).
・・・あり?失敗したぞ。
エラー文を見ると権限関連のようだが、、、あ。思い出した。確か秘密鍵は指定の権限設定にしていないと使えないルールとかあった気がする。
以下の記事を参考に、秘密鍵のパーミッション(権限)を「600」に設定。
ちなみに600というのは権限の設定記法で、r: read(読み取り), w: write(書き込み), x: execute(実行)のそれぞれ権限を8進数で表記する方法なのだが、、、これも長くなるので割愛。
じゃあ早速権限変更してSSHをリトライしてみる。
yamamoto@my-windows-pc:~$ chmod 600 /PATH/TO/key-2022-09-17-15-00.pem
yamamoto@my-windows-pc:~$ ls -al /PATH/TO/key-2022-09-17-15-00.pem
-rw------- 1 yamamoto yamamoto 1675 Sep 17 15:01 XXXXX.pem
yamamoto@my-windows-pc:~$ ssh -i /PATH/TO/XXXXXX.pem c3XXXXX@XXXXX.conoha.ne.jp -p XXXXXX
[cXXXXX@XXXXX ~]$
おおおお。bashが切り替わってちゃんとログインできたぞおおおおお。
感動ですね。
ということでお疲れさまでした。
アクセスするだけで一苦労した感じあるけど、日進月歩。
少しずつ歩むのが大事って千空も言ってた気がするし、まあのんびりいきましょう。
ということで次回はアクセスしたレンタルサーバー上でプログラムを実行。(と思われる)
コメント