AWSなどの仮想マシンが誕生してからは、コンソールひとつでOSを立ち上げたり、固定IPを設定したりといった事が簡単に実現できるようになりました。
しかしここで、昔のように自力でマシンにLinuxをインストールして、ゼロから構築しなければならなくなった場合の事を考え、いま一度自力での設定方法を備忘&勉強がてら記してみようと思います。
第5回 リモートから公開鍵認証でsshアクセス
前回のパスワード認証に続いて今回は公開鍵認証による設定を説明します。
流れとしては以下のようになります。
- クライアント側で公開鍵・秘密鍵を作成
- サーバ側に公開鍵をアップ
- パスワード認証を禁止する
まず1の作業ですが、クライアント側がLinux(OpenSSH)か、Windowsなのか、WindowsでもPuTTYを使うのかPoderosaを使うのかによって作り方が変わってくるのですが、OpenSSHでの作成方法を例にします。
1 2 3 4 5 6 7 8 9 | $ 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ファイルの最後にその内容を追記保存します(改行してペーストしてください)。
では公開鍵認証でログインを試してみましょう。
クライアント側から
1 2 | $ ssh -l xxxx hoge.jp Enter passphrase for key '/home/xxxx/.ssh/id_rsa' : |
パスワードを入力するとログインできます。
ちなみに、公開鍵&秘密鍵を作成する際に聞いてくるパスワード入力を未入力にすると公開鍵認証ログインの際にパスワードを聞いてきません。
最後に3のパスワード認証を禁止する設定をします。
1 | # vi /etc/ssh/sshd_config |
上記で、PasswordAuthentication パラメータを no に設定します。
最後にsshdを再起動します。
1 | # /etc/init.d/sshd restart |
※この記事は、なかの人(piro556)が書いています。