鍵認証について
先日友人に鍵認証のやり方を教えてくれって言われました。
口頭で説明したら「???」って感じでw
ブログにしておくって言ってしまったので、書きたいと思いますw
僕もやり方は知っていましたが、色々調べながらやった事無かったので、
丁度いい機会でした!
公開鍵認証って何?
CentOS に SSH でログインする方法には、パスワード認証方式と公開鍵認証方式があります。
パスワード認証方式は、現在のインターネット環境では、サーバーの認証として脆弱であると言っても過言ではないでしょう。
特に、SSH で不正にログインされるとサーバーを乗っ取られる可能性があるため、これからの Web サーバ-の認証は公開鍵認証方式を採用すべきです。
この記事では、公開鍵認証による SSH のログイン設定方法をご紹介します。
なるほど!そうゆう事ねw
キーペアの作成
まずは、サーバーでキーペアを作成します。
前回の記事で作成したGitサーバーを使用したいと思います。
(vagrantで作成した仮想マシンですw)
まずは、ログインして、ユーザーを作成します。
$ cd ./gitserver $ vagrant up $ vagrant ssh [vagrant@localhost ~]$ sudo su [root@localhost vagrant]# useradd takumi [root@localhost vagrant]# passwd takumi Changing password for user takumi. New password: takumi BAD PASSWORD: it is based on a dictionary word BAD PASSWORD: is too simple Retype new password: takumi passwd: all authentication tokens updated successfully
次に、キーペアを作成します。
passphraseを入力すると、鍵認証時毎回聞かれるのがうざいので、スキップしちゃいますw
[root@localhost vagrant]# su takumi [takumi@localhost vagrant]$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/takumi/.ssh/id_rsa): エンターキー Created directory '/home/takumi/.ssh'. Enter passphrase (empty for no passphrase): エンターキー Enter same passphrase again: エンターキー Your identification has been saved in /home/takumi/.ssh/id_rsa. Your public key has been saved in /home/takumi/.ssh/id_rsa.pub. The key fingerprint is: 54:41:c5:50:b0:1e:ac:93:bf:ce:e3:37:76:ac:a4:3f takumi@localhost.localdomain The key's randomart image is: +--[ RSA 2048]----+ | .*Bo | | o .. | | . + | | . + . | | S . | | o | | . .. | | ..+E o | | o*=o= | +-----------------+ [takumi@localhost vagrant]$ cd /home/takumi/.ssh/ [takumi@localhost .ssh]$ ll total 8 -rw------- 1 takumi takumi 1743 Jul 25 08:52 id_rsa -rw-r--r-- 1 takumi takumi 410 Jul 25 08:52 id_rsa.pub
こんな感じですw
んで、下記コマンドを実行して、公開鍵を公開鍵認証で使用できるようにします。
[takumi@localhost vagrant]$ cp -apr ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys [takumi@localhost vagrant]$ chmod 600 ~/.ssh/authorized_keys
公開鍵認証のログイン設定
鍵認証が行えるように設定しましょう!
[takumi@localhost vagrant]$ exit [root@localhost vagrant]# vi /etc/ssh/sshd_config vi) PubkeyAuthentication yes ←コメントを外す [root@localhost vagrant]# service sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ]
まずは、秘密鍵をダウンロードしましょう!
本来は、ここで、WinSCPなどを用いて秘密鍵をもってくるんですが、
Vagrantなので、共有ディレクトリにコピーして使おうと思います。
[root@localhost vagrant]# cp /home/takumi/.ssh/id_rsa /vagrant/ [root@localhost vagrant]# ll /vagrant/ total 7 -rwxrwxrwx 1 vagrant vagrant 1743 Jul 25 08:58 id_rsa -rwxrwxrwx 1 vagrant vagrant 4733 Jul 25 02:52 Vagrantfile
次にTera Termを設定します。
ユーザー名を入力し、パスフレーズに、秘密鍵のパスフレーズを入力し、
秘密鍵を選択し、接続してみてください!
これで、秘密鍵認証は完了となります。
~/.ssh/configを設定しておこう!
WindowsユーザーでもCygwinを使っている場合、キーフレーズで認証する事が出来ます。
設定しておこうと思います。
$ vim ~/.ssh/config Host gitserver HostName 192.168.33.19 User takumi PasswordAuthentication no IdentityFile C:/Users/takumi-main/Desktop/dev/gitserver/id_rsa IdentitiesOnly yes LogLevel FATAL $ ssh gitserver Last login: Fri Jul 25 09:00:44 2014 from 192.168.33.1 Welcome to your Vagrant-built virtual machine. [takumi@localhost ~]$
ざっと、こんな感じです!
友達には、sudo suのユーザー権限の設定方法も聞かれています。。。w
次回にでも書いておこうと思います。
使用環境
- ホストOS: Windows7 x64
- Cygwin : Cygwin64
- VirtualBox: 4.3.10
- Vagrant: 1.5.2