現在はウインドウズを端末で使ってるので、ウインドウズで使ってるときのSSH接続でxserver.jpを使うためのTIPSをメモっときます。SSH接続をすると、サーバー側でファイルの編集ができたり、端末側のエディタ(例えば、atomやVisual studio CodeにSSH関連のプラグインをいれる。)で効率よく編集できます。サーバーにはvim(viとされてる)エディタがある。
linux系サーバーの基本で、どのサーバーでも基本的にviは入っています。日本語が入ってるファイルはコードの種類によって文字化けすることがあります。原因不明のフリーズも起きやすくなったりしますので、サーバー管理で使うファイルの日本語の扱いは注意です。
xserverとは
レンタルサーバーです。linux上で使われるX server(俗に言うXあるいはX11)とは別物です。このサイトの運営もxserver.jpをレンタルして使ってます。プランはX10,X20,X30(右に行くほど大規模向け)とありますが、うちのサイトは大規模でもないのでX10を使ってます。
詳しくはxserver.jpで確認してもらえればいいです。(プラン一覧)
1年以上使ってるけど、メンテナンスやアップデートの速さ、安心できるものとして継続してますね。前置きは置いといて本題に入りましょう。
xserverとSSH
xserverはターミナル接続が可能です。ただし、SSH接続のみです。セキュリティを考えても当然の処置なのでしょうね。SSHを使う場合はxserverの公式サイトから利用できるサーバーパネルを使った2つの方法でどちらかを使って準備しなければなりません。
- 公開鍵認証鍵ペアの生成
- 公開鍵登録・更新
今回は公開鍵認証鍵ペアの生成を使ったものを紹介します。具体的な操作はxserver内のマニュアルがあるのでそちらを参考にしてみてください。
公開鍵登録・更新を使わないのは理由があります。これは、端末側(あなたの持ってるPC)で鍵を作る操作が必要で、鍵生成の知識がいります。説明してるページもいくつも見つかるので難しくはないのですが、xserverを使うときには複数の端末(例えば、ノートPCとデスクトップ2台所有している)のときに面倒なんですね。サーバーが複数の鍵の登録ができないからです。
公開鍵認証鍵ペアの生成をサーバーにさせて置くほうが楽なんですね。生成するときにはダウンロードされる秘密鍵のファイル以外に、パスフレーズは忘れずにしてください。ダウンロードされる秘密鍵の名前は、 [サーバーID].key となります。要するにあなたのサーバーIDがhogehogeだったらhogehoge.keyというファイルがダウンロードされるのです。
セキュリティ上のこともありますので、秘密鍵はクラウドサーバーに置くのは良くないです。盗まれてパスフレーズが破られれば、簡単にSSHサーバーアクセスができます。だから、複数の端末に秘密鍵のファイルをコピーする場合は、USBメモリやSDカードの利用をおすすめします。
SSHの設定と使い方
Windowsを例に書きますが、SSHクライアントのインストールに少し触れておきます。SSHクライアントはWindows10の1803以後ではのオプション機能でインストールできます。
WindowsにOpenSSHをインストール
OpenSSHクライアントは スタート → 設定 → アプリ → オプション機能の管理 → 機能の追加 を選択してみると OpenSSH クライアント というものが見つかります。これをクリックすればよいです。 それだけです。OpenSSHサーバーもありますが、サーバーの方は使いません。
OpenSSHの設定
- ユーザーフォルダ下に.sshというフォルダを作ります。(場所は、C:\Users\あなたのID\.sshになります。WSL (windows上のlinux)を使う場合は、~/.sshです。)
- .sshの下にxserverで作った秘密鍵(ここではhogehoge.key)をコピーします。( C:\Users\あなたのID\.ssh\hogehoge.key もしくは ~/.ssh/hogehoge.key
- .ssh の下に config という以下の内容のファイルを作ります。
Host svxxxx
Hostname svxxxx.xserver.jp
port 22
User hogehoge
IdentityFile C:\Users\ytake\.ssh\hogehoge.key
ここでの例はサーバー名をsvxxxx.xserver.jpとしてxxxxは数字が入っています。利用サーバーの名前はxserverのサーバーパネルのサーバー情報を確認してください。
ポートは22にしていますが、xserverは別のポートの数字にしています。サーバーパネルのssh設定に書かれてる数字にしてください。(このページに載せてる上のスクリーンショットでは黒塗りにしている。)つまり、数字が123ならば、port 123と記述を変更するということです。
IdentityFileはPowershellで利用する場合は上記のようにwindowsのディレクトリ表示に従ってください。でも、WSLのシェルを利用する場合は、 ~/.ssh/hogehoge.key にしてください。linuxやBSD系のOSXならば2つ目の表記ですね。Windowsだけは特殊です。
ここまでやれば基本的に使えます。使い方はコンソール端末(PowershellやWSLのシェル)での書き方は次の通り: サーバー名はconfigファイルに登録してるホストの名前で良いです。
ssh サーバー名 (例 ssh svxxxx )でつなげます。パスフレーズが聞かれるので、それを入力するとサーバー側に入ることができます。linux系のサーバーなのでlinuxの基本操作を知ってないと厳しいですが、エディタ+エディタのSSHプラグインとの連携するとこれらが使えるありがたさが非常にわかります。簡単で早急な対応ができるようになりますからね。
ssh以外にscpやsftpも使えます。
- scp 端末のファイル名1 サーバー 名 :ファイル名2 (サーバーにコピーをするとき) (例 scp foo.txt svxxxx:bar.txt ; これで端末のfoo.txtがサーバーsvxxxx側の~/bar.txtにコピーされる。)
- scp サーバー 名 :ファイル名1 ファイル名2(サーバーから端末にコピーをするとき) (例 scp svxxxx:bar.txt foo.txt ; これでサーバーsvxxxx側の~/bar.txtを端末の現在のディレクトリの下にfoo.txtとコピーされます。 )
- sftp サーバー名 (例 sftp svxxxx ) ftpとコマンドは同じなので、調べてください。helpコマンドも英語での簡単な説明はあるのでそれも参考にしてください。主要コマンド:cd/put/get/dirあるいはlsを覚えておけば大抵のことができます。バイナリ・テキストモードってあるけどとりあえずそれは置いといていい。
簡単な使い方はこんなものです。エディタの方で設定をするとシェルを使わなくても簡単にサーバー側のファイル操作ができます。
個人的にはVisual Studio Codeにremote-SSHプラグインをつかってます。少なくともAtomにRemote-editを使うよりセキュアかなと思ったからです。理由は、remote-editはパスフレーズを登録する必要があるのですが、パスフレーズを登録すると、その設定ファイルに暗号化されずにそのままパスフレーズが読める形でファイルにされてるからです。それはセキュリティを考えると避けたいわけです。VSC+remoteSSHはパスフレーズはサーバー接続の最初にイチイチ聞いてくるのですが、設定しなくてもいいので良いと思ったからです。非力なノートPCを端末にする場合はVSCのほうが軽いですしね。今回はエディタとsshの連携については、これ以上触れないですが、エディタ名+プラグイン名で検索するといくつも解説ページが出るのでそちらを参考にしてみてください。
ここまで設定できると、エディタから直接サーバーのファイルを操作できるので、手間が随分簡単になって扱いやすくなります。特に、.htaccessなどを触る場合です。
余談
xserverの.htaccessは日本語の取り扱いは注意してくださいね。コメントアウトするものはアルファベットのみのほうが良いでしょう。サーバーパネルで.htaccess編集をするときは、EUCコードでセーブされるのですが、コンソール接続ではUTF8になってるので、文字化けするし、内臓のvimエディタでも文字化けを起こします。UTF8コードで書くと、サーバーパネルで.htaccessを書き換えるときに文字化けになるんです。日本語ゆえの問題なんですね。ちなみにwordpressなどはutf8で扱ってるので日本語は問題ないです。だから、コンソール接続でも日本語は読めますよ。端末でVSCやatomなどを使ってる場合は、コードの文字化けはプラグインや標準の命令で治すことはできます。それは各自調べてください。
最終更新日 : 2022-07-01
私の名前(ヤスト)と接尾語の-castをくっつけた造語です。サイト名dagtapはフリック入力しやすさから選んでます。誠実で信頼できる記事を書くことを意識しつつ、「見やすい、読みやすい、分かりやすい」を大切にして、このブログを育ててます。2022夏に活動を再開させてます。SNSのリンクはこちら(linktr.ee)にまとめてあります。