ssh-keygenコマンドやPuTTYgenで鍵を作成すると、秘密鍵(id_rsa)と公開鍵(id_rsa.pub)が作成されます。
公開鍵はログインしたいサーバの公開鍵ファイル(authorized_keys)に登録、クライアントは秘密鍵と作成時に指定したパスフレーズでログイン、となります。
以下の手順では、パスフレーズなしでSSH鍵が作成されます。
[root@lv-lvs01 ~]# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): 何も入力せずにEnter Enter same passphrase again: 何も入力せずにEnter Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: ee:47:27:16:77:4a:cc:c8:c7:8e:39:aa:23:e4:75:17 root@lv-lvs01 The key's randomart image is: +--[ RSA 2048]----+ | | | | | . = | | E B . | | S X o | | . ... O + | | o . ..= + | | o ... . | | ..o.. | +-----------------+ [root@lv-lvs01 ~]# ls -al total 60 dr-xr-x---. 4 root root 4096 Apr 11 06:58 . dr-xr-xr-x. 24 root root 4096 Apr 11 06:54 .. ... drwx------ 2 root root 4096 Apr 11 06:59 .ssh [root@lv-lvs01 ~]# cd .ssh [root@lv-lvs01 .ssh]# ls -al total 20 drwx------ 2 root root 4096 Apr 11 06:59 . dr-xr-x---. 4 root root 4096 Apr 11 06:58 .. -rw------- 1 root root 1675 Apr 11 06:59 id_rsa <= 秘密鍵 -rw-r--r-- 1 root root 395 Apr 11 06:59 id_rsa.pub <= 公開鍵
[root@lv-lvs01 .ssh]# mv id_rsa.pub authorized_keys [root@lv-lvs01 .ssh]# chmod 600 authorized_keys
[root@lv-lvs01 ~]# vi /etc/ssh/sshd_config PubkeyAuthentication no ↓ PubkeyAuthentication yes [root@lv-lvs01 ~]# /etc/init.d/sshd restart
秘密鍵(プライベートキー)にid_rsaを指定する。
-----BEGIN RSA PRIVATE KEY----- ~省略~ -----END RSA PRIVATE KEY-----
鍵認証でログインできることを確認したら、パスワード認証を無効にします。
[root@lv-lvs01 ~]# vi /etc/ssh/sshd_config PasswordAuthentication yes ChallengeResponseAuthentication yes ↓ PasswordAuthentication no ChallengeResponseAuthentication no [root@lv-lvs01 ~]# /etc/init.d/sshd restart
鍵認証でログインしたいサーバに秘密鍵をおくる
[root@lv-lvs01 .ssh]# scp -r /root/.ssh ngx01:/root/ root@ngx01's password: authorized_keys 100% 395 0.4KB/s 00:00 id_rsa 100% 1675 1.6KB/s 00:00 [root@lv-lvs01 .ssh]#
SSHログインを試してパスワードを要求される場合は、SELINUXを確認する
# getenforce Enforcing # setenforce 0
公開鍵をリモートホストのauthorized_keysに追加
ssh-copy-id -i ~/.ssh/id_rsa.pub [[masuda@192.168.1.1]]
Apache暗号化通信など
「認証局」が必要
「認証局」が不要
Secure Shell (ssh) に含まれるsshの機能を使ってセキュリティの高い(セキュアな)ファイル転送を行うコマンドの 1 つ
SSH、SCPで初回ログイン時には、以下のようなメッセージが表示されて、yesを入力する必要がある。
これを表示されない(自動処理)ようにする。
# scp /etc/hosts 192.168.10.208:/etc/ The authenticity of host '192.168.10.208 (192.168.10.208)' can't be established. RSA key fingerprint is 4b:99:f7:72:fd:41:ed:eb:7a:c2:1d:dc:83:47:ea:d1. Are you sure you want to continue connecting (yes/no)?
一時的
$ ssh -oStrictHostKeyChecking=no 192.168.10.208 Warning: Permanently added '192.168.10.208' (RSA) to the list of known hosts.
恒久的
$ vi ~/.ssh/config
host * StrictHostKeyChecking no
SECSH 形式
---- BEGIN SSH2 PUBLIC KEY ---- Comment: "" AAAAB3NzaC1yc2EAAAABJQAAAIEAnlSZPvo75cuGUKVVSky8BgLq01Ieplkgizfp 5zyMNA9i8BbjjLKAGgLOW00QAStbfx1Xjr6CHDxKMoaZoiJvzlPgYfQWM5KMKzn0 A5pOq9oRhR9NsCKDSPwgYH+2d70yCgUi7fcZ/dZ9j3lC9cS9KFwZHe4d1KakEaaR 1bNqT2k= ---- END SSH2 PUBLIC KEY ----
OpenSSH 形式
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAnlSZPvo75cuGUKVVSky8BgLq01Ieplkgizfp5zyMNA9i8BbjjLKAGgLOW00QAStbfx1Xjr6CHDxKMoaZoiJvzlPgYfQWM5KMKzn0A5pOq9oRhR9NsCKDSPwgYH+2d70yCgUi7fcZ/dZ9j3lC9cS9KFwZHe4d1KakEaaR1bNqT2k=
型変換
$ ssh-keygen -i -f id_rsa.pub >> ~/.ssh/authorized_keys
実態は、改行を省いているだけ。
# cd /root/.ssh/ # vi id_rsa.org ~.pemから張り付ける -----BEGIN RSA PRIVATE KEY----- ~所略~ -----END RSA PRIVATE KEY----- # openssl rsa -in id_rsa.org -out id_rsa # chmod 600 id_rsa*
# vi /etc/ssh/sshd_config > MaxStartups 10:30:100 > MaxStartups 開始数:確率:最大数 10接続までは受け付け、以降は30%の確率で拒否し、100接続を超えると以降は全て拒否。 # /etc/init.d/sshd restart