
OpenSSHサーバはVine Linuxにインストール。OpenSHHクライアントもVineLinuxにインストール。あとSSHクライアントとしてWindows2000にインストールしたPutty。これらについてのメモ。
VineをテキストモードBaseSystemでインストールした時は、sshサーバさえも入ってない。というわけでまずはインストール。サーバ以外は今のところ不要なのでインストールしない。
[root@remote]# apt-get install openssh-server
インストールが終わったら設定。
パスワード認証を不許可、rootログインを不許可、空パスワードを不許可、ログインユーザを絞る。それぞれ、/etc/ssh/sshd_config中の該当の項目を書き換えるか、追記すればいい。終わったら、sshdの再起動。
[root@remote]# echo "PasswordAuthentication no" >> /etc/ssh/sshd_config [root@remote]# echo "PermitRootLogin no" >> /etc/ssh/sshd_config [root@remote]# echo "PermitEmptyPassword no" >> /etc/ssh/sshd_config [root@remote]# echo "AllowUsers hoge" >> /etc/ssh/sshd_config [root@remote]# /etc/init.d/sshd restart
インストールしただけで起動する設定になってたけど一応確認。chkconfigで確認できる。
[root@remote]# chkconfig --list
もし、2と3と4と5がonでない時はこうする。
[root@remote]# chkconfig sshd on
確認が取れたら起動。
[root@remote]# /etc/init.d/sshd start
心配だったら再起動でもいい。rootでシャットダウンしないと最後まで切れない。
[root@remote]# shutdown -h now
重要な視点は何かというと、鍵ペアはどこで作ってもいいということだ。秘密鍵を守るためにはlocalで作るのが良いが、鍵の持ち運び経路が信頼できるならどこで作ってもいい。鍵ペアによる認証とは、「アカウントに登録された公開鍵に対応した秘密鍵を持っている人」だけがログインできるようにする、認証方式だからだ。従って、「どこか」で作った鍵ペアの内、公開鍵をSSHサーバの鍵リストに登録して、秘密鍵をSSHクライアントと一緒にしておいてSSH通信の特に使えるようにしておかねばならない。
sshd_configにてパスワード認証を不許可にした場合には、秘密鍵を持っていないとログインできない。sshd_configを書き換えたらすぐにやっておくこと。鍵の種類はrsa、長さはデフォルト(確か2084ビット)、パスフレーズ(ログインパスワードにあらず。パスフレーズはログインパスワードと同じである必要はない。)を指定、生成された秘密鍵と公開鍵を確認、公開鍵を自分の鍵輪に追加、秘密鍵をクライアントPCにコピー、クライアントから接続確認。
まずはSSH2のRSA鍵を作るコマンドを叩いた。途中でどこに保存するか聞かれたので、id_rsa_remoteとしておいた。パスフレーズはログインに使うパスワードと同じである必要は無い。どちらかといえば違っていたほうがいいと思う。最後にファイルができたか確認。これでhogeさんの公開鍵と秘密鍵ができた。
[hoge@local]$ ssh-keygen -t rsa [hoge@local]$ ls -l ~/.ssh/
できた公開鍵をフロッピーにコピーして、remoteに持っていった。
[hoge@local hoge]$ su - [root@local root]# mount /dev/fd0 /mnt/ [root@local root]# cp /home/hoge/.ssh/id_rsa_remote.pub /mnt/ [root@local root]# chown hoge /mnt/id_rsa_remote.pub [root@local root]# chgrp hoge /mnt/id_rsa_remote.pub [root@local root]# umount /mnt/ [root@local root]# exit [hoge@remote hoge]$ su - [root@remote root]$ mount /dev/fd0 /mnt/ [root@remote root]# mv /mnt/id_rsa_remote.pub /home/hoge/.ssh/ [root@remote root]# umount /mnt/ [root@remote root]# chown hoge /home/hoge/.ssh/id_rsa_remote.pub [root@remote root]# chgrp hoge /home/hoge/.ssh/id_rsa_remote.pub [root@remote root]# chmod 644 /home/hoge/.ssh/id_rsa_remote.pub
remoteでlocalの公開鍵をauthorized_keysに登録した。
[hoge@remote hoge]$ cat ~/.ssh/id_rsa_remote.pub >> ~/.ssh/authorized_keys
$ cat ~/.ssh/id_rsa >> ~/.ssh/authorized_keys $ mkdir ./mnt/ $ su # mount /dev/fd0 ./mnt/ # exit $ cp ~/.ssh/id_rsa ./mnt/ $ su # umount ./mnt/ # exit
ssh-keygenだけでもOK、鍵の種類のデフォルトはRSAだから。フロッピードライブつけといてね。フロッピーにコピーした秘密鍵をputty.exeで使うために変換した。そのためのソフトがputtygen.exe。鍵の種類を選んで、LOADボタンでフロッピーディスク内の秘密鍵を選択、秘密鍵のセーブをSave Private Keyで行った。putty.exeで接続するときはセーブした秘密鍵を指定しておくことを忘れなく。
惑いの午後。さて、計算に必要なCPUパワーの捻出に別マシンをつかうことを考えてみた。そこで、いつも使ってるサーバよりもスペックのいいマシンにOpenSSHサーバとクライアントをインストール。そして、接続するまで。どっちのマシンにもOpenSSHのサーバとクライアントが導入済み。hogeさんが、hogeA@comAとしてhogeB@comBに接続しに行く。
まずhogeさんはcomAの前でコマンドを叩いて、hogeA@comAの公開鍵をフロッピーにコピーした。
[hogeA@comA]$ mount /dev/fd0 /mmn/floppy [hogeA@comA]$ cp ~/.ssh/id_rsa_comA.pub /mmn/floppy [hogeA@comA]$ umount /mmn/floppy
次にhogeさんはcomBの前でコマンドを叩いて、フロッピーに保存したhogeA@comAの公開鍵をhogeB@comBのauthorized_keysに追加し、hogeB@comBの秘密鍵をフロッピーディスクにコピーした。
[hogeB@comB]$ mount /dev/fd0 /mmn/floppy [hogeB@comB]$ cat /mnt/floppy/id_rsa_comA.pub >> ~/.ssh/authorized_keys [hogeB@comB]$ cp ~/.ssh/id_rsa_comB /mmn/floppy [hogeB@comB]$ umount /mmn/floppy
次にhogeさんはcomAの前でコマンドを叩いて、hogeB@comBの秘密鍵を~/.ssh/にコピーし、hogeAからhogeB@comBに接続確認した。
[hogeA@comA]$ mount /dev/fd0 /mmn/floppy [hogeA@comA]$ cp /mmn/floppy/id_rsa_comB ~/.ssh/ [hogeA@comA]$ umount /mmn/floppy [hogeA@comA]$ ssh hogeB@comB