ロリポップで色々作業したかったのでSSH接続を行いました。
手順は簡単でわかりやすく、公開鍵認証の仕組みが体感出来たので記録しておきます。
(後日、さくらVPSとXserverからも同様に設定してみました。⇒さくらVPSとXserverの場合の設定)
見出し
目次
環境
- Windows8.1
- レンタルサーバーロリポップ スタンダードプラン
- Tera Term
ロリポップへSSH接続したかったのでTeraTermをダウンロード。
=>ロリポップ
上記画面でSSH接続をする為に以下の内容を確認しておきます。
- サーバー(SSH
- アカウント(SSH
- 接続ポート(SSH
- パスワード(SSH
ロリポップにパスワード手入力でSSH接続
先ほど控えた情報を使用してTeraTermで先ずは手入力SSH接続します。
- サーバー(SSH ⇒ホスト
- 接続ポート(SSH ⇒TCPポート
- アカウント(SSH => ユーザ名
- パスワード(SSH => パスフレーズ
これでロリポップにパスワード手入力でSSH接続できました。
次に公開鍵を用いたSSH接続を試みます。
ロリポップに公開鍵認証を用いたSSH接続
先ほど手入力でSSH接続出来た状態から続けます。
TeraTermの「設定」タブから「SSH鍵生成」を選択します。↓
生成ボタンを選択します。↓
好きなパスフレーズを入力します。↓
↑「公開鍵の保存」と「秘密鍵の保存」をします。
ローカルに出力されます。↓
- id_rsa
- id_rsa.pub
の2ファイルが生成されたはずです。
.pubが公開鍵(public)でもう1つが秘密鍵です。
この公開鍵(id_rsa.pub)をTeraTerm上にドラッグアンドドロップします。
ファイル転送するか聞かれるのでSCP転送を選択します。↓
id_rsa.pubがサーバに配置されます。
サーバ上で以下の配置とパーミッション設定を行います。↓
[bash]
$ cd ~
$ mkdir .ssh
$ chmod 700 .ssh
$ mv id_rsa.pub .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys
$ vi .ssh/config
[/bash]
configファイル編集内容は以下です。最初にロリポップで控えておいたSSH情報を設定します。
[bash]
Host lolipop.jp
User アカウント
Hostname サーバー
Port ポート
IdentityFile ~/.ssh/authorized_keys
[/bash]
秘密鍵を用いてSSH接続してみます。
先ほどと同様にホストとポートを入力します。↓
次の画面ではパスフレーズに先ほど決めた好きなパスフレーズを入力し、「RSA/DSA/ECDSA/ED25519鍵を使う」にチェック入れ、秘密鍵ボタンを選択して先ほどのファイル(id_rsa)を選択します。↓
※.pubではない方です。
これで公開鍵認証による安全なSSH接続が出来ました。
次に、パスワードも入力するのが面倒なので、TeraTermのマクロを使ってダブルクリックのみで公開鍵認証によるSSH接続を行います。
ロリポップ公開鍵認証SSH接続をダブルクリックで
ローカルのデスクトップなどに拡張子.ttlのファイルを作成します。
以下のようなTeraTermアイコンにならない場合は、プロパティからTeraTermマクロファイルだと認識させます。
これをエディタで開き以下のように編集します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
hostname = 'サーバー' username = 'アカウント' KEY_FILE = 'C:\id_rsa' ;ローカル秘密鍵のパスです passwdfile = 'C:\passwd.dat' ;パスワード暗号化して保存するローカルパス portnum = 'ポート' getpassword passwdfile username userpasswd msg = hostname strconcat msg ':portnum /ssh /2 /auth=publickey /user=' strconcat msg username strconcat msg ' /passwd=' strconcat msg userpasswd strconcat msg ' /keyfile=' strconcat msg KEY_FILE strconcat msg inputstr connect msg |
これでアイコンをダブルクリックしただけで公開鍵認証によるSSH接続を行えます。
初回時はパスフレーズを聞かれるので応答します。
次回以降はパスフレーズが上記のpasswd.datに暗号化されて保存されるので入力不要になります。
win7環境で起きた問題
上記のポート番号用の変数portnumを使用するとうまくいかなかったので
1 |
strconcat msg ':2222 /ssh /2 /auth=publickey /user=' |
と直接書いたらうまくいった例があります。
以下参考にさせていただいた良サイト・ブログ様です。
- http://ysmt.blog21.fc2.com/blog-entry-352.html
- http://centos.server-manual.com/centos6_ssh_teraterm_rsa.html
- http://asuky.b.osdn.me/2011/12/04/lolipop-jp-%E3%83%81%E3%82%AB%E3%83%83%E3%83%91%E3%83%97%E3%83%A9%E3%83%B3%E3%81%AEssh%E3%81%AB%E5%85%AC%E9%96%8B%E9%8D%B5%E8%AA%8D%E8%A8%BC%E3%81%A7%E5%85%A5%E3%82%8B%E3%80%82/
コメント
[…] =>基本的にこれと同じでした。 […]
[…] ネットで徘徊していると、ロリポップへの公開鍵認証によるSSH接続をTeraTermにてマクロ自動化というのを見つけました。そう、Linux の ssh コマンドにも疑問の目を向けたのです。 […]