SSHのメモ
・キーペア生成
・公開鍵生成
・/etc/ssh/sshd_config 変更
・~/.ssh/config 追記
・sshpass 追加
等で、いつもメモ見たりしてるので、よく使うものをまとめた
~/.ssh/
権限は以下のようにしておく
mkdir -p ~/.ssh chmod 700 ~/.ssh/ touch ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys
ssh-keygen
鍵の生成をするコマンド
よく使うオプションと使い方メモ
# ================================================================================= # -オプション # 設定例 # ================================================================================= # -N パスフレーズ # '' で パスフレーズなし(非推奨) # -C コメント # 'user@domain.com' とか # -t 暗号化形式 # rsa(デフォルト), dsa, ecdsa, ed25519 とか # -b ビット数 # RSA 2048(default), 4096 ... # DSA 1024(default) 1024で固定 ザコ あまり使わないように # ECDSA 256(default), 384, 521 # ED25519 256(default) 256で固定 ecdsaより強くて速い # ED25519 は OpenSSH 6.5 以降でサポートされてるらしい # -f ファイル名 # id_rsa(デフォルト), ~/.ssh/hoge, ~/.ssh/huga_rsa, ~/.ssh/piyo_ecdsa とか # 非対話形式で id_rsa{,pub} を作成したいなら -f ~/.ssh/id_rsa とすればいい # -y 公開鍵生成 # 秘密鍵ファイルを読み出し、OpenSSH形式の公開鍵を標準出力に出力する # -R known_hosts から 対象のホスト行 を削除する # ssh-keygen -R 192.168.1.5 みたいにする # ================================================================================= # バージョン確認 ssh -v # キーペア生成 ssh-keygen -t rsa -b 4096 -N '' -f ~/.ssh/id_rsa ssh-keygen -t rsa -b 4096 -C 'user@domain.com' -N '' -f ~/.ssh/hoge_rsa ssh-keygen -t ecdsa -b 521 -C 'user@domain.com' -N '' -f ~/.ssh/huga_ecdsa ssh-keygen -t ed25519 -C 'user@dmain.com' -N '' -f ~/.ssh/piyo_ed25519 # 秘密鍵 -> 公開鍵作成 ssh-keygen -yf ~/.ssh/hoge_rsa > ~/.ssh/hoge_rsa.pub
ssh-copy-id
リモートホスト(~/.ssh/authorized_keys) に公開鍵を登録する
# ~/.ssh/id_rsa.pub の場合 ssh-copy-id root@192.168.1.5 sshpass -p 'passwoooodd' ssh-copy-id user@192.168.1.5 # ~/.ssh/dev-c_rsa.pub の場合 ssh-copy-id -i ~/.ssh/dev-c_rsa.pub root@192.168.1.6 sshpass -p 'passwoooodd' ssh-copy-id -i ~/.ssh/dev-c_rsa.pub root@192.168.1.6
add github key
リモートホスト(~/.ssh/authorized_keys) に公開鍵を登録する
curl -sSL https://github.com/@github-username@.keys >> ~/.ssh/authorized_keys
~/.ssh/config 設定
ed, ex コマンドで行頭に
ヒアドキュメント部分の設定を追記する
which ed ex 2>/dev/null /bin/ex cat << EOF | ex ~/.ssh/config 0a # hoooost Host hoooost Hostname 192.168.1.5 Port 12345 User user IdentityFile ~/.ssh/hoge_rsa . wq EOF
/etc/ssh/sshd_config
・ポートを12345に変更
・パスワード認証を無効
・公開鍵認証を有効
・パスワードでのrootログインを無効
にしていく
(22番を使用したり、12345以外を使用する場合、適宜変更)
# sshd_config バックアップ cp -a /etc/ssh/sshd_config /etc/ssh/sshd_config.bak # コメント行削除し、設定が重複する箇所を削除し、設定を追記する cat /etc/ssh/sshd_config.bak | grep -v -e '^\s*#' -e '^\s*$' | sed \ -e '/^\s*Port\s/d' \ -e '/^\s*PasswordAuthentication\s/d' \ -e '/^\s*PubkeyAuthentication\s/d' \ -e '/^\s*PermitRootLogin\s/d' \ | sed \ -e '$a Port 12345' \ -e '$a PasswordAuthentication no' \ -e '$a PubkeyAuthentication yes' \ -e '$a PermitRootLogin without-password' \ | tee /etc/ssh/sshd_config
PermitRootLogin without-password に関して
PasswordAuthentication no を無効にしてるから、あえて書く必要はないかも
PasswordAuthentication の値は without-password とか prohibit-password とか
一時的にepelを有効にして sshpass をインストール
# 全てのリポジトリ確認 yum repolist all # epelリポジトリ追加 yum install epel-release # epel関連のリポジトリの状態を確認 yum repolist all | grep epel -c yum repolist all | grep epel | grep disable -c # enable:1, disable:5 になってた # epel関連のリポジトリの状態を詳しく確認 yum repolist all | grep epel # =========================================================================================== * epel: ftp.riken.jp epel Extra Packages for Enterprise Linux 6 - x enabled: 12,588 ★ epel-debuginfo Extra Packages for Enterprise Linux 6 - x disabled epel-source Extra Packages for Enterprise Linux 6 - x disabled epel-testing Extra Packages for Enterprise Linux 6 - T disabled epel-testing-debuginfo Extra Packages for Enterprise Linux 6 - T disabled epel-testing-source Extra Packages for Enterprise Linux 6 - T disabled # =========================================================================================== # yum-utilsがなければインストール # yum-config-manager, yumdownloader 等が使えるようになる # yum install yum-utils # epelリポジトリを無効に yum-config-manager --disable epel # =========================================================================================== [epel] bandwidth = 0 base_persistdir = /var/lib/yum/repos/x86_64/6 baseurl = cache = 0 cachedir = /var/cache/yum/x86_64/6/epel cost = 1000 enabled = 0 (略) # =========================================================================================== # epel関連のリポジトリの状態を確認 yum repolist all | grep epel -c yum repolist all | grep epel | grep disable -c # disable:6 になってた # epel関連のリポジトリの状態を詳しく確認 yum repolist all | grep epel # =========================================================================================== epel Extra Packages for Enterprise Linux 6 - x8 disabled ★ epel-debuginfo Extra Packages for Enterprise Linux 6 - x8 disabled epel-source Extra Packages for Enterprise Linux 6 - x8 disabled epel-testing Extra Packages for Enterprise Linux 6 - Te disabled epel-testing-debuginfo Extra Packages for Enterprise Linux 6 - Te disabled epel-testing-source Extra Packages for Enterprise Linux 6 - Te disabled # =========================================================================================== # 一時的に epelリポジトリを有効にして sshpass をインストール yum --enablerepo=epel install sshpass sshpass -V
コメント