AWSなどの仮想マシンが誕生してからは、コンソールひとつでOSを立ち上げたり、固定IPを設定したりといった事が簡単に実現できるようになりました。
しかしここで、昔のように自力でマシンにLinuxをインストールして、ゼロから構築しなければならなくなった場合の事を考え、いま一度自力での設定方法を備忘&勉強がてら記してみようと思います。
第5回 リモートから公開鍵認証でsshアクセス
前回のパスワード認証に続いて今回は公開鍵認証による設定を説明します。
流れとしては以下のようになります。
- クライアント側で公開鍵・秘密鍵を作成
- サーバ側に公開鍵をアップ
- パスワード認証を禁止する
まず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)が書いています。