SSHのメモ

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

コメント

タイトルとURLをコピーしました