概要
訳あってSSHサーバーでterraformを実行したいけど、クレデンシャル情報を保存したくない。 毎度クレデンシャル情報を入力するのは面倒。 ローカルPCの環境変数にセットしたクレデンシャル情報をSSHサーバーでも使いたい、そんな時はSendEnvで送り込む。
SSHサーバー側
/etc/ssh/sshd_config のAcceptEnvに、SSHクライアントから送り込んでもいい環境変数をスペース区切りで列挙する。
AcceptEnv AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY
sshdをリロード
sudo systemctl reload sshd
SSHクライアント側
OpenSSH
~/.ssh/config のSendEnvに送り込みたい環境変数をスペース区切りで列挙する。
Host *
SendEnv AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY
環境変数をセットして
export AWS_ACCESS_KEY_ID="hogehoge"
export AWS_SECRET_ACCESS_KEY="fugafuga"
ssh接続して確認
ssh ssh-server
env | grep AWS
PuTTY
Windows10はOS標準でOpenSSHがインストールされているが、PuTTYでもSendEnvできる。
- Connection
- Data
- Environment variables
VariableとValueを入力してAddしておけばSendEnvに書くのと同じ動作をする。
- Environment variables
- Data