AWSなどの仮想マシンが誕生してからは、コンソールひとつでOSを立ち上げたり、固定IPを設定したりといった事が簡単に実現できるようになりました。

しかしここで、昔のように自力でマシンにLinuxをインストールして、ゼロから構築しなければならなくなった場合の事を考え、いま一度自力での設定方法を備忘&勉強がてら記してみようと思います。

第5回 リモートから公開鍵認証でsshアクセス

前回のパスワード認証に続いて今回は公開鍵認証による設定を説明します。

流れとしては以下のようになります。

  1. クライアント側で公開鍵・秘密鍵を作成
  2. サーバ側に公開鍵をアップ
  3. パスワード認証を禁止する

まず1の作業ですが、クライアント側がLinux(OpenSSH)か、Windowsなのか、WindowsでもPuTTYを使うのかPoderosaを使うのかによって作り方が変わってくるのですが、OpenSSHでの作成方法を例にします。

$ ssh-keygen -t rsa 
Generating public/private rsa key pair.
Enter file in which to save the key (/home/xxxx/.ssh/id_rsa):

***** Enterキーを押す *****

Enter passphrase (empty for no passphrase):

***** 2回パスワードを入力する *****

これにより、公開鍵『id_rsa.pub』及び秘密鍵『id_rsa』が
/home/xxxx/.ssh以下に作成されます。

次に2の作業に入りますが、作成された公開鍵『id_rsa.pub』の中身をコピーして、サーバ側の/home/xxxx/.ssh/authorized_keysファイルの最後にその内容を追記保存します(改行してペーストしてください)。

では公開鍵認証でログインを試してみましょう。
クライアント側から

$ ssh -l xxxx hoge.jp
Enter passphrase for key '/home/xxxx/.ssh/id_rsa':

パスワードを入力するとログインできます。
ちなみに、公開鍵&秘密鍵を作成する際に聞いてくるパスワード入力を未入力にすると公開鍵認証ログインの際にパスワードを聞いてきません。

最後に3のパスワード認証を禁止する設定をします。

# vi /etc/ssh/sshd_config

上記で、PasswordAuthentication パラメータを no に設定します。

最後にsshdを再起動します。

# /etc/init.d/sshd restart

※この記事は、なかの人(piro556)が書いています。