サーバーのファイル操作はFTPクライアントソフトでも可能なのですが、ターミナルを使用したリモート操作という方法もあるので、今回はその環境構築をしていきたいと思います。

その理由は、現在UNIXコマンドの勉強中でもあるので、ターミナルに触れる機会を作っておきたいと思ったためです。

SSHとは

SSHはSecure Shellの略で、クライアントとサーバーとの通信を安全に行う仕組みです。

接続方法には2種類あり、①公開鍵認証方式と②パスワード認証方式となります。

公開鍵認証方式とは

公開鍵と秘密鍵を利用する認証方式です。

パスワード認証方式とは

ユーザIDとパスワードによる認証方式です。

パスワード認証方式の方は脆弱性があるということなので、最近は公開鍵認証方式が一般化されています。エックスサーバーも公開鍵認証方式のみ対応されています。

エックスサーバー側の設定

エックスサーバーのサーバーパネルにログインします。

TOP画面の「SSH設定」をクリックします。

SSH設定を有効にする

「SSH設定」タブの「ONにする」をクリックします。

設定の完了画面が表示されるので「戻る」をクリックし、「状態」が「ON」になっていればSSHの設定が有効になっています。

鍵の生成

次に認証用の鍵を生成します。

「公開鍵認証用鍵ペアの生成」タブをクリックします。「パスフレーズ」に設定したいパスフレーズを入力し、「確認画面へ進む」をクリックします。

「生成する」をクリックします。

これで公開鍵がサーバーに設置(更新)されます。それと同時に秘密鍵が自動的にダウンロードされるはずです。

エックスサーバー側の設定についてはこちらに詳しく書かれていますのでご参考に。

https://www.xserver.ne.jp/manual/man_server_ssh.php

秘密鍵をPCに保存

先ほどダウンロードした秘密鍵を「~/.ssh」に移動させます。

「~」はホームディレクトリ(ユーザ名のフォルダ)となります。

「.」ドットが先頭に付いているフォルダは隠しフォルダと呼ばれ、通常は見えない状態となります。

パーミッションを設定する

.sshフォルダと秘密鍵のパーミッションを設定します。

パーミッションとは、ユーザによって、ファイルの操作の制限をかけるための設定です。

ターミナルを起動して、以下のコマンドを実行します。

$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/id_rsa.key

パーミッションについては、また別の記事で紹介したいと思います。

サーバに接続

ターミナルを開いて、以下のコマンドを実行します。

$ ssh -i id_rsa.key http〜 -p 10022
  • -i : 続けて秘密鍵のファイル名を入力
  • http〜 : サイトを入力
  • -p : 続けてポート番号を入力

「接続を続けますか?」と聞かれるので、

yes

と入力し、Enterキーを押します。

次にパスフレーズを聞かれるので、先ほど登録したパスフレーズを入力します。入力中は画面に入力した文字は表示されません。入力完了後、Enterキーを押します。

設定など問題がなければ接続が完了します。

設定ファイルについて

SSHに関する設定はconfigファイルにて行うことができます。

例えば、

  • SSH接続のコマンドを独自のコマンドに置き換える。
  • サーバー接続が自動的に切断(タイムアウト)されてしまうのを防ぐ。

というような設定が可能です。

.sshフォルダに「config」という名前のファイルを作成をします。

ちなみに「#」を行の先頭につければコメントアウトになります。

SSH接続のコマンド定義

configファイルに以下の内容を記述し、ファイルを保存します。

Host hoge
HostName ホスト名
Port 10022
User ユーザID
IdentityFile ~/.ssh/id_rsa.key
  • Host : 任意の接続名
  • HostName : ホスト名
  • Port : ポート番号
  • User : ユーザID
  • IdentityFile : 秘密鍵のパス

例えば、上記のような設定をして以下のコマンドを実行するとサーバーへ接続することができるようになります。

$ ssh hoge

接続のタイムアウトを防ぐ

configファイルに以下の設定を追加します。

ServerAliveInterval 60

こうすることで、60秒毎にタイムアウトしないようサーバーに通知されるようになります。

まとめ

エックスサーバーにSSH接続する方法について紹介しました。

UNIXコマンドを勉強中だったので、これでよりターミナルを使う機会を得ることができました。ターミナルの操作にも慣れれば、UNIXコマンドの覚えも良くなるかと思われます。

ターミナル操作も覚えておいて損はないと思うので、是非このような環境を整えてみてはどうでしょうか。

更新日 : 2019年6月20日

投稿者: TWEI

趣味はプログラミング。 以前は仕事でプログラミングをやっていました。現在はWebエンジニアを目指して勉強中。 勉強で得た知識などをブログで発信していく予定です。

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA