~/.ssh/configでalias prodを定義する。
ssh prodの実行時にserver.example.testへdeploy user、port 2222で接続する。
適切なblockはどれか。
SSH client configはHostでmatching aliasを開始し、HostName、User、Port等のconnection parameterを指定する。
詳細解説
HostName prod
Host server.example.test
User deploy
Port 2222Host aliasとHostName実hostのdirectiveが逆である。
誤り。HostName prodでは実接続先がprodとなり、Host directiveの位置にserver.example.testを置く構成も逆である。
Host prod
Server server.example.test
Login deploy
Port 2222ServerとLoginは対応するOpenSSH client directiveではない。
誤り。OpenSSH clientはServer/LoginではなくHostName/User directiveを使用する。
Host prod
HostName server.example.test
User deploy
Port 2222alias、実host、user、portを正しいdirectiveへ割り当てる。
正しい。ssh prodがblockへmatchし、指定HostName、User、Portを利用する。
Alias prod = server.example.test
UserName deploy
SSHPort 2222OpenSSH configのHost block構文ではない。
誤り。Alias、UserName、SSHPortというassignment形式はOpenSSH configの基本構文ではない。
実際に確かめる
一時的な検証環境で実行できる例です。
printf '%s
' 'Host prod' ' HostName server.example.test' ' User deploy' ' Port 2222'期待される結果
Host prod
HostName server.example.test
User deploy
Port 2222理解のポイント
- Hostはpattern/alias
- HostNameは実接続先
- UserとPort
確認時の注意
- 確認環境: OpenSSH client config blockの表示のみ
基礎のおさらい
first obtained value
多くのssh_config optionは最初に得た値を使うため、specific Host blockとHost *の順序を意識する。
permission
client configとprivate keyはuserの秘密情報を含み得るためownershipとpermissionを適切にする。