実際に設定してみよう!
05.08.10 / SSHって何? / Author: aico
まず秘密鍵と公開鍵をつくりましょう!
すると、このように言われます。
Generating public/private rsa key pair.
Enter file in which to save the key (/home/usako/.ssh/id_rsa):
鍵の保存場所を聞かれているので、そのままENTERを押します。
つぎに、パスフレーズをつくります。
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
パスフレーズは秘密鍵を使うためのパスワードのようなものでしたよね。
公開鍵方式では復号化のためには秘密鍵を持っていること&パスフレーズを知っていることを必要とします。
Your identification has been saved in /home/usako/.ssh/id_rsa.
Your public key has been saved in /home/usako/.ssh/id_rsa.pub.
The key fingerprint is:
c3:09:db:b2:6f:f2:c7:52:e7:65:ca:c6:39:d4:a0:8d usako@usako-usagi.local
このようにでれば、公開鍵と秘密鍵の作成はクリアです!
本当にできているのか確認しましょう。
$ ls -la ~/.sshと入力して、
-rw——- 1 usako usagi 1743 8 4 14:38 id_rsa
-rw-r–r– 1 usako usagi 405 8 4 14:38 id_rsa.pub
と出ればOKです!
サーバーに入る前に、つくった公開鍵をサーバーにコピーしましょう。
$ scp id-rsa.pub [サーバー名] : /home/usako/
つぎに、ssh [サーバー名]とパスワード認証でサーバー内に入り、つくった公開鍵をサーバ側に登録しましょう!
公開鍵はサーバ側の~/.ssh/authorized_keysファイルへ登録します。
~/.ssh/authorized_keysは、ユーザーの公開鍵を登録するための設定ファイルです。
まず、サーバー側のホームディレクトリに.sshディレクトリをつくります。
$ mkdir ~/.ssh
$ ls -laをすると、.sshができていることがわかります。
drwxr-xr-x 2 usako wheel 4096 Aug 5 12:20 .ssh
こんな風にでます。
つぎに.sshのパーミッションを変更します。
.sshのパーミッションをユーザーのみ読み書き実行できるにしたいので、
$ chmod 700 ~./sshと入力します。
$ cd .sshで.sshに入り、コピーしておいた公開鍵id_rsa.pubを ~/.ssh/authorized_keysに登録します。
$ cat ../ id_rsa.pubとすると、公開鍵のファイルの中身が見ることができます。
これを~/.ssh/authorized_keysに登録します。
$ cat ../id_rsa.pub >> authorized_keys
そのあと、$ cat authorized_keys と入力すると、$ cat ../id_rsa.pubと同じものがでるはずです。
authorized_keysのパーミッションも変更しましょう!
こんどはユーザーのみ読み書きOKとします。
$ chmod 600 authorized_keys
これでサーバー側に公開鍵が登録できました!
次はユーザー認証の方法をパスワード認証から公開鍵暗号方式に変更します!と言いましょう!
$ cd /etc/ssh/で設定ファイルのある/etc/sshに移動します。
sshdの設定ファイルはsshd_configです。なのでこのファイルを編集しましょう。
$ vi sshd_config
#PubkeyAuthentication yesをPubkeyAuthentication yesに変更(#を削除)
#PasswordAuthentication yesをPasswordAuthentication noに変更(#を削除してyesをnoに)
再起動しましょう!
$ /etc/init.d/sshd restart
Stopping sshd: [ OK ]
Starting sshd: [ OK ]
とでればOKです!
もうひとつターミナルをひらいて$ ssh [サーバー名]でサーバーに入ってみましょう!
パスフレーズを聞かれたら設定できている証拠です!
$ ssh-keygen -t rsaで鍵作成
Enter file in which to save the key (/home/usako/.ssh/id_rsa):はそのままenterを押す
Enter passphrase (empty for no passphrase):パスフレーズ入力
Enter same passphrase again:もう一度入力
$ ls -la ~/.sshで鍵ができているか確認
$ scp id-rsa.pub [サーバー名] : /home/usako/でサーバーに公開鍵をコピーする
ここまでで鍵作成完了
ssh [サーバー名]とパスワード認証でサーバー内に入る。
$ mkdir ~/.sshで.sshディレクトリを作成
$ chmod 700 ~./sshで.sshのパーミッションを変更
$ cd .sshで.sshディレクトリに入る
$ cat ../id_rsa.pub >> authorized_keysで公開鍵をauthorized_keysファイルに登録する。
$ chmod 600 authorized_keysでauthorized_keysのパーミッション変更
ここまででサーバー側に公開鍵を登録完了
$ cd /etc/ssh/で/etc/ssh/に移動
$ vi sshd_configでsshdの設定ファイルを編集
#PubkeyAuthentication yesをPubkeyAuthentication yesに変更(#を削除)
#PasswordAuthentication yesをPasswordAuthentication noに変更(yesをnoに)
PasswordAuthentication yesを削除
$ /etc/init.d/sshd restartで再起動
もうひとつターミナルを開いて$ ssh [サーバー名]でパスフレーズを聞かれたらOK
Comments: 2
教科書的には、chmodは属性を数値で設定する解説が
多い(なので2進数展開の説明がセットである)ですが、
こんな設定もOKです。
たとえば、
chmod u+x
これだと、ユーザ所属で実行権限をつけるという意味です。(≒chmod 100)
詳しくは、 man chmodでどうぞ~
もにょもにょさん
コメントありがとうございます。
chmod、いろんな使いかたがあるんですねーー^^