さくらVPSでssh設定(公開鍵認証)
こんにちは、なおぽんです。
sshとは
Secure Shell(セキュアシェル、SSH)は、暗号や認証の技術を利用して、安全にリモートコンピュータと通信するためのプロトコル。パスワードなどの認証部分を含むすべてのネットワーク上の通信が暗号化される。
パスワード認証ではなく、公開鍵認証方式での設定を行います。
なぜsshを設定する必要があるか
telnetやftpでの通信は暗号化されないので、なりすましや情報が漏えいする恐れがあります。
そこでサーバーと安全に通信を行うためにsshを使用します。
#aptitude update
#aptitude install ssh
sshをインストールします。(※Linuxには標準で入っています。)
$mkdir ~/.ssh //sshディレクトリを作成
$chmod 700 ~/.ssh //ディレクトリのパーミッション(アクセス権)を変更します。
700は八進数での表記になります。
$cd ~/.ssh //sshディレクトリに移動
$ssh-keygen -f client_rsa -t rsa //client_rsaというrsa鍵の生成
(/Users/yyyyyyy/.ssh/client_rsa): //何も入力せずreturn
Enter passphrase: //何も入力せずreturn
Enter some passphrase again: //何も入力せずreturn
ssh-keygenで認証鍵の生成をします。
-f :鍵の名前を指定
-t :鍵の種類を指定 (rsaとdsaの2種類があります)
$ls ~/.ssh //sshディレクトリを参照
client_rsa client_rsa.pub
2つの鍵が生成されていることがわかります。
client_rsaが秘密鍵になり、クライアント側に置きます。
client_rsa.pubが公開鍵になり、サーバー側に置きます。
$ scp ~/.ssh/client_rsa.pub ユーザー名@192.168.1.1:~ //サーバーに公開鍵を登録します。
user@192.168.1.1 ‘s password: //パスワードを入力します。
scp :sshでファイルを転送
$ ssh user@192.168.1.1 //sshでサーバーに入ります。
admin@192.168.1.1 ‘s password:
Last login: Sat Apr 26 10:34:15 2014 from 192.168.1.1
この時点ではまだパスワード認証になっているため、公開鍵をリモートサーバーに登録する必要があります。
$ mv ~/client_rsa.pub ~/.ssh //公開鍵をsshディレクトリに移動
$ cat ~/.ssh/client_rsa.pub >> authorized_keys
//公開鍵の内容を出力してauthorized_keysに追記する。
$ chmod 600 authorized_keys //パーミッションを変更
mv :移動
cat :出力や連結に使用
>> :追記
> :上書き、ファイルがない場合は新規作成
$ rm ~/.ssh/client_rsa.pub //コピーを終えた公開鍵は削除します。
rm :削除
$ exit //一度ログアウトします。
$ ssh -i ~/.ssh/client_rsa user@192.168.1.1
-i :RSA鍵認証の際に読み込むファイルを指定
パスワード入力を求められなければ、認証成功です。
# vi /etc/ssh/sshd_config //いくつかファイルの内容をを変更します。
Port 10022 //ログがたくさん出るためポート番号を変更
PasswordAuthentication no //パスワード認証を不可にする
PermitRootLogin no //rootログインを不可にする
# /etc/init.d/ssh restart //変更を更新するため再起動
$ ssh -p 10022 user@192.168.1.1
-p :ポート番号を変更したので指定
これで接続できれば完了です。
さくらVPSを使うまではVirtual Box上で試みたのですが、かなり苦戦しました。。。
思い切ってさくらVPSにしたところうまくいきました。