はじめに
今回は「クライアント-->踏み台->サーバー1」でSSHログインする場合、公開鍵認証の設定方法を説明します。
環境
OS | IP | ユーザー | |
---|---|---|---|
クライアント | WSL2 on Window 10 バージョン2004(OSビルド19041.208) | 192.168.56.100 | - |
踏み台 | CentOS 7.8(2003) | 192.168.56.114 | user |
サーバー1 | CentOS 7.8(2003) | 192.168.56.21 | user |
手順
##公開鍵認証
key pair作成
よりセキュアのed25519暗号化アルゴリズム、 パスフレーズなしで秘密鍵ペアを作成し、~/.ssh/id_ed25519という名前で保存します。
ssh-keygen -t ed25519 -N "" -C "okcoder@desktop-wsl" -f ~/.ssh/id_ed25519
~/.sshフォルダにid_ed25519、id_ed25519.pub二つファイルが作成されます。
公開鍵転送
公開鍵を踏み台に転送します。
ssh-copy-id user@192.168.56.114
パスワードが聞かれますが、踏み台のパスワードを入力します。
確認
下記コマンドで踏み台のバージョンが表示されれば、鍵転送が完了しました。
ssh user@192.168.56.114 uname -a
.ssh/config登録
接続先情報を.ssh/configに登録して、サーバー名だけでログインできるようにします。
登録
cat <<EOF | tee -a ~/.ssh/config
Host bastion
HostName 192.168.56.114
User user
EOF
確認
.ssh/configに登録したサーバー名bastionでSSHログインできることを確認します。
ssh bastion uname -a
踏み台経由接続設定
.ssh/config追加
.ssh/configに踏み台サーバー経由でサーバー1へログイン情報を登録します。
cat <<EOF | tee -a ~/.ssh/config
Host server1
HostName 192.168.56.21
User user
ProxyCommand ssh -W %h:%p bastion
EOF
公開鍵転送
公開鍵をサーバー1に転送します。
ssh-copy-id server1
パスワードが聞かれます。サーバー1のパスワードを入力します。
確認
サーバー1へ接続できることを確認します。
ssh server1 uname -a
.ssh/config確認
問題がなければ、.ssh/configファイルの内容は以下の通りです。
~/.ssh/config
Host bastion
HostName 192.168.56.114
User user
Host server1
HostName 192.168.56.21
User user
ProxyCommand ssh -W %h:%p bastion