■OpenSSHサーバ
Linuxサーバを運用している方なら日常的にSSHを使用していると思います。何も設定せずともアカウントを追加すればユーザ名パスワードでログインできてしまいますがここではパスワード認証ではなく公開鍵を使った鍵認証の設定を行います。
■TeraTerm設定
クライントはWindowsのTeraTermを使用しますので、TeraTerm上で鍵を生成致します。
「setup」メニューから「SSH KeyGenerator」を選択します。
上記の画面が表示されますので「Generate」ボタンをクリックします。
passphraseが入力できるようになりますので、ここに任意のpassphraseを入力します。
入力後、「Save public key」と「Save private key」をクリックして公開鍵および秘密鍵をローカルの任意の場所に保存します。それぞれデフォルトでは「id_rsa」と「id_rsa.pub」という名前で保存されます。※上記パスフレーズ入力画面で通常は任意のものを入力します が、入力しないことも可能です。その際には秘密鍵さえもっておけばユーザ名だけでログイン可能となります。
■SSHサーバ設定
OpenSSHサーバの設定を編集します。以下は編集した部分のみ記載しています。
# vi /etc/ssh/sshd.conf PermitRootLogin no PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys [ Password認証を拒否する場合は以下を追記 ] PasswordAuthentication no |
一旦、sshdを再起動します。
# /etc/rc.d/init.d/sshd restart |
TeraTerm側で作成した秘密鍵(id_rsa)と公開鍵(id_rsa.pub)のうち、公開鍵側をサーバ 側に登録します。FTPやSCPでサーバ側にアップした後に以下のように公開鍵を登録します。
# cat id_rsa.pub >> .ssh/authorized_keys # chmod 600 .ssh/authorized_keys |
これでサーバ側の準備は整いました。
■公開鍵認証ログイン
Windowsクライアント側のTeraTermの操作になります。TeraTermでSSHで接続後、通常であればユーザ名パスワードを 入力しますが公開鍵認証を利用しますので、画面としては以下のようになります。
「Use RSA/DSA/ECDSA key to login」のところにチェックを入れるとpasswordではなくpassphraseに変わります。ここにはアカウントのパスワードではなく鍵を生成した際のパスフレーズを入力してログインします。「Private key file:」のところには先程生成したid_rsa(秘密鍵)を指定するようにします。
上記操作でログインが可能となります。
■TeraTermMenu
公開鍵認証を使用すると通常のID/PASSのログインと比較しセキュリティは向上しますが、利便性という面においてやはり不便となってし まいます。常に使用するPCが同一であればTeraTermMenuを使用することによりこれをかなり軽減することが可能です。
TeraTermMenuはTeraTermに同封されるアプリケーションでインストールの際にチェックを入れることでTeraTermと同時にインス トールが可能です。
インストール後に起動するとタスクバーにTeraTermMenuが表示されます。右クリック→List Configurationで設定していきます。
- Nameには任意の名前を入力
- autologinを選択し、HostNameにサーバのIPアドレス、UserNameにユーザ名、Passwordには秘 密鍵を生成した際のパスフレーズを入力
- use SSHにチェックを入れ、Keyfileに秘密鍵を指定する。
- ◀ボタンを押してList Itemに追加する。
上記で設定は完了です。あとはタスクバーのアイコンをクリックするとList Itemが表示されますのでそれを選択すると自動でログインまで行われます。