さくらインターネット(スタンダードプラン)にWindows10から公開鍵認証でSSH接続
さくらインターネットのスタンダードプラン(レンタル共有サーバー)は、初期FTPアカウントを使ってTeraTermでパスワード認証方式のSSH接続が可能です。
初期FTPアカウントは、申込み時に必ず送られてくる 『仮登録完了のお知らせ』メールにパスワードも含めてまとめて全部載っています。
メールを通して配布されてきたパスワードは使いたくないという人は結構多いはず、メールは盗み見されるリスクがありますよね。
パスワードを初期の申し込み状態から変更、変更後のFTPアカウントを使ってTeraTermのパスワード認証で公開鍵を「さくらインターネット」のサーバー内に設定、そして、TeraTermやFileZillaで鍵認証のSSH接続を行います。
手元のパソコン(ローカルホスト)はWindows10、リモートのサーバーはさくらスタンダード約500円/月という環境です。
FTPパスワード変更とアカウント確認
サーバーコントロールパネルにログイン⇒「サーバパスワードの変更」に進むと、「サーバーコントロールパネル」と「FTP」と「パスワード認証のSSH接続」を兼務する統一パスワードの変更が出来ます。全てを1つのパスワードで兼務で、「仮登録完了のお知らせ」メールで普通にパスワードが書かれてくるって改めて考えると結構怖い。
「サーバーコントロールパネル」⇒「サーバー情報の表示」⇒「サーバーに関する情報」まで進み、「FTP設定に関する情報」で「FTPサーバ」と「FTPアカウント」も確認できます。
サーバパスワードがわからない場合
「会員メニュー」⇒「契約情報」⇒「契約サービスの確認」⇒「パスワード再発行」⇒「同意する」⇒「次へ」⇒「決定」となります。1時間以内に再発行用のメールを送ってもらえますが、個人的には、いちいち待たされるのはイヤです。
ご参考までに、さくらインターネットのレンタル共有サーバーでは、薄紫色の「会員メニュー」のログインアカウント と 茶色の「サーバーコントロールパネル」のログインアカウント として2種類のログインアカウントがあります。サーバパスワードは、茶色の「サーバーコントロールパネル」のログインアカウント 兼 FTPアカウント 兼 SSHアカウント です。
TeraTermでFTPアカウントを使ってパスワード認証のSSH接続
TeraTermを立ち上げたら下記の「ホスト(T)」に、先ほど確認したFTP設定に関する情報の「FTPサーバ」を入力してOKをクリック。
次に、「ユーザー名(N)」にさくらの「FTPアカウント」を入力。パスフレーズに先ほど変更したパスワードを入力して、出来たらOKをクリック。
※パスフレーズの入力はショートカットキーの「Ctrl+V」では出来ないので、パスフレーズの入力窓の上で右クリック⇒「貼り付け(P)」でコピペします。
下記の様な画面が出てきたらパスワード認証のSSH接続成功です。使えるLinuxコマンドがroot権限無しの範囲に制限されるという点は他のレンタル共有サーバーと同じですが、FreeBSDで1台の共有サーバーで独自SSLの独自ドメインを複数サイト設置可能なSNI SSLなどの点がさくらの独特なところです。root権限無しの為にhttpd.confの確認や書き換えが出来ず、mod_rewriteの許容範囲なども手探りで.hataccessの記載方法が多少独特です。
接続できたので、下記の様に exit と打ち込んでください。さらに Enter を押してさくらスタンダードとの接続を切断しTeraTermを閉じます。
Windows10の中でSSH(SSH2 RSA)の公開鍵・秘密鍵を作る
初心者の方は、どこ(Win10の手元のパソコンか?リモートのさくらのサーバーか?)でどのフォルダ(ディレクトリ※)でどのツールを使ってどんなコマンドを叩くのか?さっぱりわからないので、なるべく細かく書いています。
※WindowsのフォルダはLinuxではディレクトリと呼ぶ。
Windows10の中で秘密鍵と公開鍵の鍵ペアを作って、公開鍵だけさくらスタンダードのサーバーの中に配置します。
SSH鍵生成画面を出して鍵ペア生成
TeraTermで秘密鍵と公開鍵を作ります。TeraTermを起動して、「設定(S)」⇒「SSH鍵生成(N)」に進みます。
「生成」をクリック。
生成をクリックすると鍵ペアはTeraTerm内に出来上がりますが保存はされていません。
鍵をWindows10のパソコンの中でどこかに保存します。念のために鍵自体にパスフレーズを付けてから保存します。
強引ですがパスフレーズは鍵の鍵だと考えてください、パスワードとは別物と明確に区別してください。
最初に、下記画像の「鍵のパスフレーズ」に自由に文字列を入れ、「パスフレーズの確認」にも入れてください。パスフレーズのメモも忘れずにとります。
その後、公開鍵の保存、秘密鍵の保存をそれそれクリックして鍵をWin10内に保存します。
公開鍵と秘密鍵をWin10内のどこに保存したか?忘れてしまった時の調べ方がわからない人は、Win10内の鍵の保管場所を忘れない様にメモなどしておいてください。
保存場所を忘れると何度も鍵発行を行ってパソコンの中が鍵だらけでどれが最新の鍵なのか?わからなくなります。鍵の管理が煩雑になると面倒です。
下記の様に鍵には元から名前が付けられています。公開鍵は id_rsa.pub 、秘密鍵は id_rsa です。※鍵の名前は変えない様に。
以上で鍵生成は終了です。残すは、さくらスタンダードのサーバー内に公開鍵を配置し、TeraTermで公開鍵によるSSH認証です。
初めての方には、鍵生成そのものがややこしくて意味不明です。最初は「こういうものなんだ」と思いながらやるしかないです。
徐々に慣れて、他のサーバーでもSSH接続を自由に出来る様になっていけます。
さくらスタンダードに公開鍵を設置
最初の時と同様にさくらスタンダードにパスワード認証でSSH接続します。そして半角英数小文字で pwd と打ち込んでEnterを押してください。
pwdは現在のディレクトリ(フォルダ)として居場所を確認するコマンドです。接続後は、サーバーの中で/home/「ユーザー名」という場所にいます。
次に「ll(半角小文字英数でエルエル)」と打ち込んでEnterを押します。今いるディレクトリの中にどんなファイルやディレクトリがあるのか一覧を見るコマンドです。
下記の赤枠内が/home/ユーザー名/のディレクトリの中にあるファイルやディレクトリの一覧です。
「 .(ドット)」が先頭にきているファイルは、windowsでいうところの隠しフォルダでLinuxでは隠しディレクトリとなります。
隠しディレクトリで「.ssh」が有る事を確認してください。この中に公開鍵を設置します。
※無い方は「mkdir .ssh」というディレクトリを新しく作るコマンドを打ち込んでEnterを押し、もう一度、「ll(半角小文字英数でエルエル)」をやってみてください。
「.ssh」がある事を確認したら、次に「cd .ssh」を打ち込んでEnterを押します。
これは、/home/ユーザー名/から/home/ユーザー名/.sshに移動するためのコマンドです。これで.sshのディレクトリ内に入ることが出来ました。
※pwdで/home/ユーザー名/.sshにきているかどうか確認してみてください。
Win10からさくらスタンダードの/home/ユーザー名/.sshに公開鍵を転送します。「ファイル(F)」をクリック、「SSH SCP…」をクリックします。
新しくウィンドウが現れるので、上部のFromでブルーの矢印の部分をクリックしてWin10内にある先ほど作った公開鍵ファイル id_rsa.pub を選択(下のFromには絶対に入力しない!)、上部のToには、さくらスタンダードのサーバーの/home/ユーザー名/.sshを入力し、Sendをクリック(下部のToには触らない)。公開鍵がさくらスタンダードの中の規定の位置に配置されます。終わったら「ll(エルエル)」コマンドで確認してみてください。
※FromでファイルをWin10から選ぶ際、拡張子が異なるために公開鍵ファイル id_rsa.pub が表示されない場合があります。その場合、ファイルを選択するウィンドウでファイルの種類(T)の選択肢の中から「すべてのファイル」などを選んでみてください。ファイルを見られるようになります。
鍵のリネーム(名前の変更)を行います。
「mv id_rsa.pub authorized_keys」とコマンドを打ち込んでEnterを押してください。「ll(エルエル)」コマンドでファイル名がauthorized_keysに変わっていることを確認してください。
さらに、「chmod 600 authorized_keys」のコマンドを打ち込んでパーミッション(ディレクトリへのアクセス権限)の制限をuserのみに締めておきましょう。
このあたりは、よくわからない場合、そのまま行ってください。全てセキュリティ策で、変な事は行っていませんので安心してください。
ファイルの出し入れ・追加・削除・編集などを行う際、パーミッションがきつくて出来ない場合などが出てきますので注意は必要です。
パーミッション設定したことを完全に忘れ、ファイル出し入れができず、無駄に時間が過ぎた経験が多々あります。
公開鍵方式のSSH接続最終段階に行く前に、改めてexitコマンドでさくらスタンダードとの接続を切断してください。
公開鍵方式のSSH接続でさくらスタンダードにTeraTermで接続
TeraTermを立ち上げます。「ホスト(T)」には最初と同じようにFTP設定に関する情報の「FTPサーバ」を入力してOKをクリック。
ユーザー名(N)には、最初と同じようにさくらの「FTPアカウント」を入力。問題は次から。
パスフレーズには、先ほど二つの鍵を保存した時のパスフレーズを入力。
さらに、「RSA/DSA/ECDSA/ED25519鍵を使う」を選択して、ブルーの矢印部分の「秘密鍵(K)」をクリックして、Win10内の先ほどの 秘密鍵ファイル id_rsa を選択し、最後にOKをクリック。
※秘密鍵ファイルをWin10から選ぶ際、拡張子が異なるために秘密鍵ファイル id_rsa が表示されない場合があります。ファイルを選択するウィンドウでファイルの種類(T)の選択肢の中から「すべてのファイル」や「秘密鍵ファイル」などを選んでみてください。ファイルを見られるようになります。
以下の様な画面を見られれば完了です!パスワード接続との差は、最初に変更したパスワードを使うのではなく、鍵生成時に使ったパスフレーズとユーザー名と秘密鍵の3つで接続できたかどうか?がポイントです!
コマンドが苦手な方には、以下、FileZillaによる公開鍵認証のSSH接続もご参考ください。
公開鍵方式のSSH接続でさくらスタンダードにFileZillaで接続
FileZillaを使うとFTPソフトとほとんど同じGUI(Graphical User Interface : コマンドじゃなくて画面で操作できる)によるファイルの操作が出来ます。
https://filezilla.softonic.jp/ よりFileZillaをダウンロード、インストールして立ち上げてください。ご参考までに、FileZillaは今でもソフトのバージョン更新が継続されています。
立ち上げたら「ファイル(F)」⇒「サイトマネージャ(S)」に進んで、SSH接続設定を行います。
サイトマネージャで各種接続アカウントの設定を行います。
「新しいサイト(N)」「名前の変更(R)」などのあたりで、各種サーバーへの接続アカウント枠を作り、自分で後から判別できるように命名します。ここでは、取り急ぎSakuraStandardと命名しました。
ホスト(H)には、FTP設定に関する情報の「FTPサーバ」を入力。ポート(P)はデフォルトは22となっていますので何もしなくてOKです。XサーバーはSSH接続のポートが10022だったりします。プロトコル(T)は選択肢の中からSFTPを選択。ログオンの種類(L)でKey fileを選択。ユーザ(U)には、最初と同じようにさくらの「FTPアカウント」を入力。「Key file」に、「Browse」をクリックしてWin10内の先ほどの 秘密鍵ファイル id_rsa を選択。一度、「OK」をクリックしてエントリ(接続サーバー別のアカウント)を登録して、再びサイトマネージャを立ち上げて、SakuraStandardを選び、「接続(C)」をクリック。
下記の画面では、「OK」をクリック。初めて使う鍵の認証ということで、FileZillaが気を利かせて確認してくれています。
次の画面では、パスワードではなく、二つの鍵を保存した時のパスフレーズを入力。
接続されると以下の様に右側のリモート領域にはっきりとFreeBSDのさくらのディレクトリやフォルダなどが表示されます。
接続の切断は、「サーバ(S)」⇒「切断(D)」で出来ます。
Windowsでssh接続はツール選びの時点から難しい
TeraTermによるWindows10からLinux系のサーバーへの接続など、SSH接続は、学習が進むとCygwinなどを使ってsshコマンドでサーバー接続も出来る様になります。
Windowsのssh接続(Linuxコマンド)のお勧め学習順は、①TeraTerm②FileZilla③Cygwinです。
WindowsのLinuxに対するSSH接続まわりは、その他にPutty(Keygen:鍵生成)やWinSCP等もあり、どのツールをどのような場合にどうやって使えばいいのか?独学の人は非常に困ります(経験者)。
様々なツールで作ったSSH鍵には互換性が無い事が多々ある!
マジでドはまりしますので、お気を付け遊ばせください。知らないと大きな時間を損する話をします。
プロトコルがSSH1とSSH2としてバージョン違いがある。
SSH暗号化方式がSSH1はRSA、SSH2はRSAとDSA。
暗号鍵の記述形式がSSH2では
そのうえ、ユーザー名、パスワード、パスフレーズ等の色々な設定値に使える文字/記号種類や文字数などがサーバーや接続ツール毎に異なる場合があり、接続できない原因の特定や解決についても慣れていないと厳しいです。
①TeraTermが出来れば、FTPライクなGUI(Graphical User Interface : 操作画面)の②FileZillaも比較的に習得しやすいです。
「①TeraTerm②FileZilla」と「③Cygwin」の間には、③Cygwinをインストールするまでにパッケージの選定をしたり、なんとなくgitも一緒に進めた方がよさそうでgitbashが入ってきたり、Chocolateyって何?(Chocolateyはパッケージアップデート機能に不便なバグがあるので使わない事をお勧めします)など、道が見えず、Windowsではやや高い壁があり挫折する人も多いです。
ssh接続するとイケてるWEB運営/集客が出来る様になってくる
Cygwinでsshコマンドによるレンタルサーバーへの接続なども出来る様になり、Vagrant/Virtualboxのローカルホスト内に立ち上げた開発環境の仮想マシンにssh接続して、仮想マシンからリモートのレンタル共有サーバー/VPS/クラウドに接続してgitも使う!など2段式のssh接続が出来る様になると、開発環境も含めて今までよりもはるかに広い本職っぽい世界の入口が見えてきます。
学習必要量が急速に増えまくり、学習必要量が見え過ぎてうんざりしてしまう人も多発すると思います。
開発環境でプラグインや各種機能実装のテストと改修をして、本番環境には出来上がったファイルをアップロードする事ができる様になるため、本番環境でバグを表示したままWEB制作/運営を行う様な「カッコ悪い状態」を無くして、安定性の高いWEB集客/運用に近づきます。
自社独自のテンプレートを開発環境でいくつか持っておき、対応サーバーなども決め打ちしていけば業務効率も上げられます。
受託のWEB制作は、ssh使用可否、開発環境有無、root権限有無などでも金額が変わる
格安で遅いレンタル共有サーバーの本番環境に直接WEB制作、FTPしか使えない、などの場合、制作効率がかなり低いのでWEB制作価格も高くせざる負えません。
このあたりの見積をきちんと算出出来ない業者は、赤字になる未来を想像できていない未熟な業者です。
そのため、制作モチベーションや品質の維持を途中で出来なくなる可能性が高い。
root権限が無くて、一般グループのユーザーでSSHが使える程度のランクのレンタル共有サーバーは、サーバー管理の手間を考えると選択肢ですが、同居しているWEBサイトのセキュリテイ脆弱性などを突いて、攻撃されてしまう場合もありますので油断はできません。
サーバーの各種パッケージのセキュリティ更新などが付属してくるVPSやクラウドで、開発環境と本番環境をの2サイト分の毎月のサーバー費用を、最低限、予算確保するべきです。
sshが使える最低金額ラインはさくらインターネットのスタンダードプラン500円/月あたりです。
root権限が無いと、導入コストが一気に跳ね上がるCMSやオープンソースのアプリケーションなどもあります。Redmineやサーバー外部の未提携独自SSLなどです。
目的?ターゲット?ブログ集客?ネットショップ?会員制サイト?など、事業計画を含めて制作会社に伝えた上で計画的なサーバー運用を相談したい場合、時間やコミュニケーションが発生する為、運営企画依頼としてコンサル費の予算確保も必要となります。