こんにちはJunです。vagrant、Docker、VPSなどを構築しているとわかりますが、レンタルサーバーは手軽に構築できて便利です。エンジニア的には自由に環境を構築できた方がいろんなアプリを作ることができますが、ブログ程度であればXserverで十分です。
DBや細かい設定もGUIで完結できる様になっているので初心者にはもってこいです。しかし私が別で構築しているブログを今管理しているXserverに移行する時、画像やDBが膨大すぎて手動・GUIでは移行に限界がありました。そのためSSHを使用してXserverに繋いてで操作することにしました。今回はその忘備録です。
「SSHとはなんぞや?」という人はこちらの記事でわかりやすく説明したものがあるのでご覧ください。
最初にXserverでSSH接続を有効にする必要があります。Xserverサーバーパネルにログインして、「SSH設定」という箇所のページを開きます。
そこで「変更」をONにして「設定する」をクリック。しますとSSHが有効になります。
SSHは鍵交換という方法を用いてサーバーへのログインを管理しています。自身のPCからXserverのサーバーへアクセスするには鍵を発行します。「公開鍵認証用鍵ペアの生成」をクリックします。以下の画面が表示されるので、「パスフレーズ」(パスワードの様なもの)を入れて「確認画面」へ進みます。
確認が終了すると~~~.keyという拡張子のファイルがダウンロードされます。このファイルは鍵ファイルといい、サーバーの中にアクセスする際に使用されます。
ここからはローカル(自分のPC)の話になります。SSHでアクセスするために、ローカルでのSSH設定を行います。またローカルにはsshdがあり、今回はMacOSターミナルでの操作を前提としています。
ターミナルを立ち上げ、ひとまずホームディレクトリに移動し、さらにDownloadsへ移動し、先ほどダウンロードしたkeyファイルを見つけます。
jun@MacBook-Pro % cd ~
jun@MacBook-Pro ~ % cd downloads
jun@MacBook-Pro downloads % ls
...
server.key
...
keyファイルをひとまずホームディレクトリ配下にある.ssh/
へ移動させます。
jun@MacBook-Pro downloads % mv server.key ~/.ssh/
.ssh
に移動してkeyを確認。そして権限を変更します。権限を変更しないと WARNING: UNPROTECTED PRIVATE KEY FILE!
と怒られます。
jun@MacBook-Pro .ssh % ls
config server.key
jun@MacBook-Pro .ssh % chmod 400 server.key
これでOKです。lsをした時にconfigというファイルがあったと思います。そのファイルにsshの設定が記述されていますので、以下の様に編集をします。
jun@MacBook-Pro .ssh % vi config
Host my-site
HostName svExample.xserver.jp
Port 10022
user idName
IdentitiesOnly yes
IdentityFile /Users/junjiishii/.ssh/server.key
HostName
はxserverのホスト名を入力し。user
にはサーバーIDを入力します。HostName
はxserverのサーバーパネルの「サーバー情報」、サーバーIDは「パスワード変更」で確認できます。
config
で設定しておくとsshコマンドを打つ時、Hostの名前でつまり、ssh my-site
とするだけで設定した値の接続先にsshしてくれます。
それではsshを行ってみます。
ssh my-site
Enter passphrase for key '/Users/jun/.ssh/junji1996.key': #設定したパースフレーズを入力
#もし、以下の文章が表示されたら yesをおす
ECDSA key fingerprint is SHA256:V0GmZVuUlP6tQw5MYbGelfcq+IQwq/6+HnH1OPAcaLo.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
[idName@svExample ~]$
ターミナルの表記がとなればxserverへ入れて、その中を操作していることを示しており、ログイン成功です。以上がxserverへssh接続する方法です。
以上がxserverでSSHを行う手順です。
基本的にレンタルサーバーでwordpressを使ってブログを書くぐらいならFTP程度で十分であり、SSHを使うこともないと思います。しかし膨大な量のデータを移行したり、phpmyadmin(データベースの操作ができる)で出力・挿入不可なほどのデータベース移行をする際にはコマンドで打てる環境があるとやりやすいです。
また鍵交換方式は鍵ファイルさえ流出しなければ不正にサーバーに侵入されるリスクがパスワード方式よりも低いです。