(1) FreeBSDの場合
(a) 鍵ペアを作る
Linux / Unix系のマシンの場合,「ssh-keygen」というコマンドを使います。「> ssh-keygen -t dsa」とすると,「~/.ssh/」に「id_dsa」と「id_dsa.pub」というキーが作られます。ここで,
・id_dsa:privateキー(手元においておいて他人には見せない)
・id_dsa.pub:publicキー(ログイン先のサーバーに送り込む)
です。パスフレーズはパスワードみたいなものですが,ログイン先サーバーに送られるのではなくて,作った鍵(id_dsaのprivateキー)を使うために入力するものです。つまり自分のマシン内でパスフレーズで鍵を使えるようにしておいて,後は鍵のやり取りをサーバーとの間で行う,というのがdsa認証のやり方です。以下がdsa鍵作成の実例。
> ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/home/xxxx/.ssh/id_dsa): (註1) Enter passphrase (empty for no passphrase): (註2) Enter same passphrase again: (註2) Your identification has been saved in /home/xxxx/.ssh/id_dsa. Your public key has been saved in /home/xxxx/.ssh/id_dsa.pub. The key fingerprint is: aa:bb:cc:dd:48:67:e6:cf:ae:11:af:11:22:33:44:55 xxxx@yyyy.zz.aa.jp(註1:鍵ファイルのファイル名。デフォルトはid_dsa。デフォルトのままでよいならそのままリターン)
(註2:パスフレーズを入力。安全のため10文字以上,できれば20文字以上ほしい。)
(b) 二つのキーファイルのうちの「id_dsa.pub」をscp等を使ってログインしたいサーバーに送り込みます。
(c) サーバーでは,~/.ssh/の下に移動させ,名前をauthorized_keys2とします。もしすでにautorized_keys2というファイルがある場合は,送り込んだid_dsa.pubの内容をエディターでauthorized_keys2の末尾に結合させます。
<注意> 「.ssh/」のpermissionは「700」でないとうまくいきません。
「> chmod 700 .ssh」
(d) 鍵を使ってログインする
・上記の設定ができれば,sshで普通にログインを試みます。そうするとパスフレーズの入力を要求されるので,パスフレーズを入れるとログインできます。
・もうちょっと楽をしたければ,ssh-agentを使うと便利です。例えばX-windowを起動する時や,screenを起動する時にssh-agentを使っておきます。
screenを使った例:「> /usr/bin/ssh-agent screen "-e^Pp"」・さらに,X-windowsやscreenの中で「> /usr/bin/ssh-add ~/.ssh/id_dsa」のようにssh-addで鍵を有効にすれば一度パスフレーズを入力するだけで楽にログインできます。
(2) MacintoshのOS-Xの場合
MacintoshのOS-Xは基本的にFreeBSDなので,ターミナルを使って上記のFreeBSDの作業をすれば使えます。
(3) windowsのPuTTYを使う場合
(a) PuTTYのインストール
windowsでunixにログインして作業するには,まずは適当なターミナルソフトが必要です。筆者はよくPuTTYを使っています。なので,PuTTYでの使い方を書きましょう。
・まずは本家PuTTYのダウンロードのページに行って,「putty-0.60-installer.exe」を取ってきましょう(2009/3/13現在では,putty-0.60が最新)。そして,この「putty-0.60-installer.exe」をインストールします。するとwindowsのC:\Program FilesにPuTTYというフォルダができます。
・次にhdk の自作ソフトの紹介 | PuTTYjpに行って,本家と同じバージョンの日本語のPuTTYを取ってきます(2009/3/13現在では,putty-0.60-jp20070603.zip)。これを解凍して,中身をC:\Program Files\PuTTY\の中に移動します。実行ファイルはputtyjp.exeという名前で,putty.exeとは別ものになっているのですが、ドキュメントのファイル名は同じ物があるかもしれません。以前は同じファイル名の物があって、上書きするか?と聞かれて,上書きしていました。最近はどうかな?
・本家のPuTTYをインストールした際にデスクトップにショートカットができているので,そのプロパティでショートカット先を「"C:\Program Files\PuTTY\puttyjp.exe"」に変更しておきましょう。また,「スタート」→「プログラム」→「PuTTY」の中のPuTTYのプロパティも同様にリンク先を「"C:\Program Files\PuTTY\puttyjp.exe"」とすれば、混乱がなくなり、便利になります。
・PuTTYを起動したら、まず設定して、その設定を「保存」しましょう。
・「接続」-「SSH」で優先するSSHプロトコルバージョンを「2」あるいは「2 only」にしましょう。
・「ウィンドウ」でウィンドウサイズを適当な大きなサイズにしましょう。
・「ウィンドウ」-「色」で色を適当に選びましょう。
・「セッション」で「ホスト名」を「serv1.xxx.yyy.zz.jp」などにし、「プロトコル」を「SSH」にします。
・「端末」-「キーボード」-「バックスペースキー」を「control-H」にした方がよいことが多くあります。
・最後に「保存されたセッション」の欄に「適当な名前」をいれて、「保存」します。(例えば、「serv1」としましょう)
・デスクトップ上のPuTTYのショートカットのプロパティで(ショートカット上でマウス右クリック)、リンク先を「"C:\Program Files\PuTTY\puttyjp.exe" @serv1」とすれば、ショートカットをダブルクリックするだけで設定「serv1」で接続してくれます。
・PuTTYの使い方は普通のターミナルソフトと同じですが、文のコピー:3ボタンマウスの中央ボタン、文のペースト:マウスの右ボタン、でいけます。
(b) puttygen.exeによる鍵ファイルの生成
・「c:\Program Files\PuTTY\puttygen.exe」を起動します。起動したら,メニューバー(上の方)の「Key」の中の「SSH2 DSA key」を選びます。あるいは,下のほうにある「Parameters」の中の「SSH2 DSA」を選びます。これで作成する鍵ペアは「dsa」用となります。
・次に「Generate a public/private key pair」(中央,右のちょっと下の「Generate」ボタンか,メニューバーの「Key」の中の「Generate key pair」)で鍵ペアを作ります。この時,ランダムにキーを作成するために,「Key」と書いてあるスペースの中でマウスをぐるぐると動かしてください。そうすると,作業状態を示すバーがどんどん伸びます。
・鍵ができると,「Public key for ...」と「Key fingerprint」,「Key comment」に文字が書かれた状態になります。
・「Key comment」は書き換えることができます。
defaultは作成日などになっていますが,どのコンピュータで作成したかなどを入れてもよいでしょう。
(c) privateキーの保存
・ここで「Key passphrase」と「Confirm passphrase」にパスフレーズ(鍵を使うためのパスワードみたいなもの)を入れましょう。より安全にするためにパスフレーズは最低でも10文字,できれば20文字以上を使いましょう。
・パスフレーズを入れたら,「Save the generated key」の「Save private key」で作ったprivateキーを保存しましょう。名前は「id_dsa」とするとunixとお揃いになります。ちなみに,拡張子が勝手について「id_dsa.ppk」となります。
(d) publicキーをサーバーに送り込む
・publicキーの方は,「Key」というスペースの中の「Public key for pasting into OpenSSH autorized_keys file:」の中の文字列「ssh-dss ......... 」をコピーして,サーバー上に「~/.ssh/authorized_keys2」という名前のテキストファイルとして保存します。(一度ログインしてファイルを作りましょう)
・homeディレクトリの中に「.ssh/」(~/.ssh/)というディレクトリがなければ,「> mkdir .ssh」として作ります。
この時,「.ssh/」のpermissionは「700」としましょう。
「> chmod 700 .ssh」
・もし,すでにauthorized_keys2というファイルがある場合は,文字列「ssh-dss ......... 」をauthorized_keys2の末尾に結合させます。
(e) 鍵を使ってサーバーにログインする
・PuTTYの設定で,サーバーに接続する設定を読み込みます。
・さらに,「接続」-「SSH」-「認証」で「認証のためのプライベートキーファイル」を入力する場所があるので,作成したprivateキーを指定します。これもPuTTYの設定の中の「セッション」で「保存」しておきましょう。
・その状態で設定を保存すれば毎回ログイン時にパスフレーズの入力を要求され,privateキーを使ったdsa認証が行なわれます。
(f) すでにあるdsa-private-keyファイルを使いたい時
・サーバー等で作ったdsa-private-keyファイルが既にある時は,puttygen.exeで「Conversions」-「Import key」を選びましょう。そこですでにあるdsa-private-keyを読み込みます。読み込む時にpassphraseを聞かれます。正しく入れましょう。
・Parameters(下のほうにあります)で,「SSH2 DSA」を選びましょう。そして「Save Private Key」として保存します。ファイル名は「id_dsa2」などとしましょう。勝手に拡張子「ppk」がつきます。
(g) Pagent.exe(常駐型)を使ってサーバーに入る
・作成したprivateキー(id_dsa.ppk)というファイルをダブルクリックして,「Pagent.exe」というプログラムを起動します。パスフレーズを聞かれるので,正しいものを入れましょう。
この「Pagent.exe」は常駐していて,作成したprivateキーが有効な状態にしておいてくれます。ただし,他の人がwindowsマシンを簡単に操作できると勝手にサーバーに入られるので,気をつけて使わないととても危険です。個人マシンで使うことを勧めます。また席を離れる時は「windowsキー+L」で画面をロックすることをお勧めします。
・起動時にパスフレーズを入力するには,「C:\Documents and Settings\yyyyy\スタート メニュー\プログラム\スタートアップ」(yyyyyはユーザー名)にprivateキーファイルのショートカットを入れておくといいでしょう。
・PuTTYを使う際に,「PuTTYの設定」の「接続」で,自動ログインユーザーをサーバーのユーザー名にすると便利です。
・「Pagent.exe」を起動しておくと,WinSCPなどでも使えるので便利です。
0 件のコメント:
コメントを投稿