前回、WordPressのsslでの常時接続の設定を行ったのですが、同じようにサーバー上のファイルやデータベースを操作する場合のローカルコンピューターからの接続を暗号化する手順をやってみようと思います。
エックスサーバーの設定
SSH設定をONにする
では、まずエックスサーバーのサーバーパネルにログインします。メニューの中の「アカウント項目」の「SSH設定」をクリック。
「SSH設定」というタブの状態が「OFF」になっていますので、これを「ONにする」をクリックします。これでssh接続が利用できるようになります。あと、下に注意書きが書かれているので、こちらも覚えておいてください。
公開鍵認証用鍵ペアの生成及び秘密鍵のダウンロード
次に「公開鍵認証用鍵ペアの生成」タブをクリック。
「パスフレーズ」という欄がありますので、こちらに半角6文字以上32文字以内でパスフレーズを作って、「公開鍵認証用の鍵ペア生成(確認)」をクリックします。
確認画面が出ますので、「公開鍵認証用の鍵ペア生成(確定)」をクリックすると秘密鍵がダウンロード出来るようになります。これを、ローカルマシンに保存します。
ローカルマシンの設定
.sshディレクトリを作って秘密鍵を移動する
では、続いてMacのターミナルを立ち上げます。
まずは、ホームディレクトリに「.ssh 」ディレクトリを作成します。
mkdir ~/.ssh
上のように打ち込むと「.ssh 」が作成されます。mkdir(Make Directory)でディレクトリを作るコマンドです。
続いてダウンロードした秘密鍵を「.ssh」ディレクトリに移動します。
mv ~/downloads/○○○.key ~/.ssh
これで秘密鍵は「.ssh」ディレクトリに移動します。ダウンロードした秘密鍵が「ダウンロード」フォルダに無い場合は「downloads」を任意のディレクトリ名に変えてください。mvは「Move」でファイルやディレクトリを移動するコマンドです。
秘密鍵の名前を変更しパーミッションを変更する
カレントディレクトの移動
続いて、カレントディレクトリを「.ssh」ディレクトリに移します。
cd ~/.ssh
と入力。これでディレクトリ表記が.ssh ○○○$と変更になっているはずです。cdは「Change Directory」ですね。
ファイル名の変更
そして、○○○.keyというファイル名を秘密鍵を表す「id_rsa」というファイル名に変更します。
mv ○○○.key id_rsa
これで変更になります。ファイル名を変更する場合もmvを使用します。
パーミッションの変更
パーミッションとは、ファイルやディレクトリのアクセス権の事です。これを変更する事でどんな操作を行えるかを変更する事が出来ます。
まずは、「.ssh 」ディレクトリのパーミッションを変更します。
chmod 700 ~.ssh
これで「.ssh」ディレクトリのパーミッションが700に変更されました。
続いて、「id_rsa 」のパーミッションを変更します。
chmod 600 id_rsa
これで、「id_rsa」のパーミッションが600に変更されました。chmodは「Change Mode」です。
リモート接続をしてみる
これで準備完了です。
では、コマンドを打ち込んでみましょう。
ssh ユーザー名@サーバーid.xserver.jp -p 10022
Are you sure you want to continue connecting (yes/no)?
とメッセージが出ますので、「yes」と入力します。そうすると
Enter passphrase for key '/Users/ユーザーディレクトリ/.ssh/id_rsa':
と出ますので、最初に秘密鍵を作成した時のパスフレーズを入力します。
これで、接続が完了します。
ログアウトする場合は「exit」コマンドを使用します。
configファイルを使用して接続を簡単にする
さて、接続の度に長いコマンドを打ち込むと面倒だという場合は、「config 」ファイルを作成する事で簡略化する事が出来ます。
vi config
と打ち込んでみましょう。viというコマンドでエディタが立ち上がります。その後にファイル名を打っておくと新規ファイルを作成した上で編集用のエディタが立ち上がります。
編集する為に「a」 のキーを入力してください。そうすると編集できるようになります。
Host ○○○ ←ここは任意のコマンド名を入れてください HostName サーバーID.xsrv.jp Port 10022 User サーバーID IdentityFile ~/.ssh/id_rsa ServerAliveInterval 60 ←これを入れないと、自動切断されてしまいます。
上記のように入力したら「esc」キーを押して編集モードを抜けます。「:wq」と入力すると保存出来ます。
これで、先ほど作成したコマンド名を使って
ssh コマンド名
で接続できるようになりました。
FTPクライアントの接続設定
最後にFTPクライアントの設定もしてみます。
自分が使っているのは「Transmit」です。
まずはサーバーリストを開きます。下の「+」をクリックして「SFTP」を選択。サーバー名に任意の名前をつけて「次へ」
プロトコル | SFTP |
サーバーアドレス | サーバーID.xsrv.jp |
ポート | 10022 |
ユーザー名 | ユーザー名 |
パスワード | 鍵マークをクリックして秘密鍵を読み込む |
秘密鍵は、先ほど作った「id_rsa」を読み込みますので、「+」をクリックして「認証鍵を読み込む」をクリック。「.ssh」ディレクトリ内の「id_rsa」を読み込みます。
そうするとパスフレーズを求められますので、最初に秘密鍵を作った時に入力したパスフレーズを打ち込みます。
これを保存してすれば完了です。
これでFTPクライアントでもssh接続が出来るようになりました。
まとめ
今や安全の為にはセキュリティ対策は欠かせない物になっています。通常のFTP接続よりも、安全にサーバーとのやり取りが出来るようになるssh接続も必須と呼べる物になってきていると思います。少々ややこしいですが、安心の為にも設定をしておくのがいいと思います。