2009年4月 7日

XreaでのSSH接続と公開鍵認証とFilezillaとSFTP

SFTPを使うとなんか色々いいらしいということで、Filezillaで使ってみようと思い立ちました。

SSHを利用するらしい、なるほど。確か前にシェルを使いたくてSSHで接続してみたな・・・と以前の記事を探して、自分へのメモ用だと書いたその記事を読んだのですが・・・走り書きのようで何を言っているのかわからず結構時間がかかってしまい、結局他のサイトで調べるはめに。その反省を生かして今度はちゃんと書こうと思います。



まずはSSHで接続するための準備をします。

僕の場合はXreaのレンタルサーバーを借りているため、Xreaの設定で自分のホストを登録する必要がありました。30日間有効だそうです。

Filezilla単体ではSFTP接続は行えますが鍵認証に対応出来ないため、Putty.jppageantを利用します。

追記:パスフレーズなしならばFilezilla単体で鍵認証を行えます

hdk の自作ソフトの紹介
Putty.jpはこちらから

ダウンロードして解凍すると一体どれを使えばいいのかとまどうくらい実行ファイルが並んでいます。まずはその中のputtygen.exeで鍵を作ってしまいましょう。

実行しましたらまず一番下のラジオボタンで真ん中のSSH-2 RSAを選んでからGenerateボタンをクリックしてマウスをわしゃわしゃ動かします。この動きで鍵を生成するのですが、ウィンドウ外の動きは無視されるので注意。バーがいっぱいになったら完了です。

次に埋めるべきテキストフィールドが3つ出てきます。

Key commentはその名の通りキーについてのコメントです。初期値にrsa-key-yyyymmddと日付が入っています。FilezillaでSFTPを使うだけならそのままでもいいのですが、SSH接続をした時にこのコメントが表示されてパスフレーズを入力するので、どのキーなのか分かる程度のコメントを入れておいた方がいいかもしれません。

Key passphraseがパスフレーズ(パスワード)です。SSH接続をする場合はこれを入力するだけでログイン出来る形になります。pageantを使う場合も必要になります。
また、パスフレーズなしということも可能です。どこかで「危険すぎると言われているが、そもそもパスフレーズが入力出来る状況では少々の時間稼ぎにしかならない」という記述を見てなるほど納得してしまいました(そもそも対応する秘密鍵を持ってないと通信出来ない)。今回は諸事情によりパスフレーズなしで進めます。
____________
       <○√
        ∥     ←パスフレーズ
        くく
しまった!秘密鍵を盗まれた!
オレが止めているうちに他へ逃げろ!
早く!早く!オレに構わず逃げろ!


Confirm passphraseは確認入力です。上と同じにしましょう。パスなしなら空欄のままで。


次に鍵を保存します。
Save public keyでサーバーに置く公開鍵を、Save private keyで接続する側の秘密鍵を保存します。公開鍵はどうせリネームするのでファイル名はなんでもいいです。秘密鍵は接続先の名前をつけておくといいかもしれません。ここでは参考サイトに習ってssh2_rsa.txt(公開鍵)とssh2_rsa.ppk(秘密鍵)としておきましょう。パスフレーズなしだと警告が出ますが無視して保存して下さい。


やっと鍵が出来ました。さて、これをサーバーにアップしなければなりません。Xreaではブラウザからファイルマネージャが使えるのでそれを使うといいのでしょうか。後でSFTPで接続するので、Filezillaでユーザー名とパスワードを使ったSFTP接続をしてみました。

サーバーに接続したら自分のルートディレクトリに.sshというディレクトリ(パーミッションは700)を作って、その中に公開鍵ssh2_rsa.txtをアップして下さい。次にPuttyjpでSSH接続します。

Puttyjp.exeを実行し、カテゴリの一番上のセッションを選択、ホスト名を指定してあげてから接続してみて下さい。最初エラーが出たのですが、もう一回やってみたらうまくいきました。アカウント名、パスワードを入力して接続完了。

そしてコマンドライン上から.sshへ移動

> cd ~/.ssh

その後に鍵を変換します。

> ssh-keygen -i -f ssh2_rsa.txt >> authorized_keys2

この後はFTPクライアントでやった方がわかりやすいかもしれませんが、面倒なのでコマンド打ち込んでしまいましょう。ファイル名などはタブキーで補完してもらえます。

まず元ファイルを削除して

> rm ssh2_rsa.txt

鍵のパーミッションを変更

> chmod 400 authorized_keys2


コレでOKです。Puttyは閉じてもいいですし、もう少しUNIXコマンドで遊ぶのもいいでしょう。



さて、やっとpageantの出番です。
pageant.exeを起動するとタスクトレイにアイコンが出ますので、それを右クリックしてAdd Keyを選択、最初に作成した秘密鍵を指定するとパスフレーズの入力を求められるのでパスフレーズを入力。これでやっとFilezillaでSFTPを使う準備が完了しました。



Filezillaの編集(E)→設定を開き、SFTPの項目を・・・あれ・・・?



ここまで書いて僕は気づいてしまったのです。参考にしていた記事が随分古かったことに。
すでにFilezillaは鍵認証に対応していました。あ、いやいや自分用メモだから大丈夫です、セーフです。ということでpageantを使うのも面倒なのでパスフレーズなしの認証でいきます。



pageantをこっそり終了し、パスフレーズなしの鍵を作り直し、記事を修正しましたが、気を取り直して続きを。



Filezillaの編集(E)→設定を開き、SFTPの項目を選択し、作った秘密鍵を追加します。
その後サイトマネージャでサーバの種類をSFTPにして接続。以上です。

ちなみにサイトマネージャでパスワードを空欄にしても鍵認証なのでちゃんと接続できます。ユーザ名は空欄にしたら怒られました。



さて、今回もグダグダな感じになってしまいました。そもそもなんでSFTPを使ってみようと思ったのかも覚えてませんが、何かメリットがあったはずです。何かあったのは確かですが・・・









             /)
           ///)
          /,.=゙''"/
   /     i f ,.r='"-‐'つ____   こまけぇこたぁいいんだよ!!
  /      /   _,.-‐'~/⌒  ⌒\
    /   ,i   ,二ニ⊃( ●). (●)\
   /    ノ    il゙フ::::::⌒(__人__)⌒::::: \
      ,イ「ト、  ,!,!|     |r┬-|     |
     / iトヾヽ_/ィ"\      `ー'´     /




トラックバックURL

このエントリーのトラックバックURL:
http://rogoma.net/blog/mt-tb.cgi/51

コメントする