====== SSH ====== ===== 鍵認証 ===== 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 <= 公開鍵 === 公開鍵ファイルauthorized_keysを作成する === [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 === クライアント(puttyやWinSCPなど)からログイン === 秘密鍵(プライベートキー)に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]] ===== 【memo】ssh / ssl ===== ==== Secure Socket Layer (SSL) ==== Apache暗号化通信など 「認証局」が必要 ==== Secure SHell protocol (SSH) ==== 「認証局」が不要 ==== Secure Copy (SCP) ==== Secure Shell (ssh) に含まれるsshの機能を使ってセキュリティの高い(セキュアな)ファイル転送を行うコマンドの 1 つ ===== sshで初回ログイン時に「Are you sure you want to continue connecting (yes/no)? 」を自動処理する ===== 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