メモ ネットワークインフラ

XserverでSSH接続を行い、ターミナルで操作する

2021.01.11

こんにちはJunです。vagrant、Docker、VPSなどを構築しているとわかりますが、レンタルサーバーは手軽に構築できて便利です。エンジニア的には自由に環境を構築できた方がいろんなアプリを作ることができますが、ブログ程度であればXserverで十分です。

DBや細かい設定もGUIで完結できる様になっているので初心者にはもってこいです。しかし私が別で構築しているブログを今管理しているXserverに移行する時、画像やDBが膨大すぎて手動・GUIでは移行に限界がありました。そのためSSHを使用してXserverに繋いてで操作することにしました。今回はその忘備録です。

SSHを有効にする

「SSHとはなんぞや?」という人はこちらの記事でわかりやすく説明したものがあるのでご覧ください。

最初にXserverでSSH接続を有効にする必要があります。Xserverサーバーパネルにログインして、「SSH設定」という箇所のページを開きます。

そこで「変更」をONにして「設定する」をクリック。しますとSSHが有効になります。

秘密鍵を生成する

SSHは鍵交換という方法を用いてサーバーへのログインを管理しています。自身のPCからXserverのサーバーへアクセスするには鍵を発行します。「公開鍵認証用鍵ペアの生成」をクリックします。以下の画面が表示されるので、「パスフレーズ」(パスワードの様なもの)を入れて「確認画面」へ進みます。

確認が終了すると~~~.keyという拡張子のファイルがダウンロードされます。このファイルは鍵ファイルといい、サーバーの中にアクセスする際に使用されます。

SSHの設定をする

ここからはローカル(自分の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/
TIPS: sshdがある環境ではユーザーごとに.sshというディレクトリが与えられ、そこで個人のssh設定を行います。しかし.sshは隠しファイルなので、ホームディレクトリでlsをしても普通には出てきません。ls -a とすることで隠しファイルを含めて表示させると、.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してくれます。

xserverへ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接続する方法です。

SSHは何がいいの?

以上がxserverでSSHを行う手順です。

基本的にレンタルサーバーでwordpressを使ってブログを書くぐらいならFTP程度で十分であり、SSHを使うこともないと思います。しかし膨大な量のデータを移行したり、phpmyadmin(データベースの操作ができる)で出力・挿入不可なほどのデータベース移行をする際にはコマンドで打てる環境があるとやりやすいです。

また鍵交換方式は鍵ファイルさえ流出しなければ不正にサーバーに侵入されるリスクがパスワード方式よりも低いです。

Copyright © 2021 jun. All rights reserved.