server側user deployが、特定client userのpublic keyによるSSH loginを許可する。
server側deploy accountの標準fileを選ぶ。
public keyを追加するfileはどれか。
server accountの~/.ssh/authorized_keysは、そのaccountへのpublic key認証を許可するclient public keyとoptionを保持する。
詳細解説
~deploy/.ssh/known_hostsdeployが接続したserverのhost keyを記録する。
誤り。known_hostsはdeployが接続する相手serverのhost identityを検証するfileである。
~deploy/.ssh/id_ed25519deploy自身のprivate user keyを置くfileである。
誤り。id_ed25519はdeploy自身のprivate keyで、他clientのpublic key許可listではない。
~deploy/.ssh/authorized_keysdeployとしてloginを許可するclient public keyを列挙する。
正しい。deploy accountのauthorized_keysへclient public keyを追加し、そのaccountへの認証を許可する。
/etc/ssh/ssh_host_ed25519_key.pubserver host identityのpublic keyでuser login許可listではない。
誤り。server host public keyはhost identity用で、deploy accountのuser authorizationを定義しない。
実際に確かめる
一時的な検証環境で実行できる例です。
printf '%s
' 'authorized_keys=allowed client public keys' 'known_hosts=trusted server host keys'期待される結果
authorized_keys=allowed client public keys
known_hosts=trusted server host keys理解のポイント
- server account側に配置
- public keyだけを追加
- known_hostsと区別
確認時の注意
- 確認環境: OpenSSH authorization file対応表
基礎のおさらい
per-key option
authorized_keysではcommand=、from=等をkeyへ付けて権限とsourceを限定できる。
permission
~/.sshとauthorized_keysのownership/modeが不適切だとsshdがsecurity上無視する場合がある。