naopon blog

プログラミング未経験の大学生が1年間大学を休み、プログラマーとしてインターンをします。

さくらVPSでssh設定(公開鍵認証)

こんにちは、なおぽんです。

 

さくらVPS上でsshを設定してみました。

 

sshとは

Secure Shell(セキュアシェル、SSH)は、暗号認証の技術を利用して、安全にリモートコンピュータと通信するためのプロトコルパスワードなどの認証部分を含むすべてのネットワーク上の通信が暗号化される。

Secure Shell - Wikipedia

 

パスワード認証ではなく、公開鍵認証方式での設定を行います。

 

なぜsshを設定する必要があるか

telnetftpでの通信は暗号化されないので、なりすましや情報が漏えいする恐れがあります。

そこでサーバーと安全に通信を行うために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にしたところうまくいきました。