authprogs
目前已經把所有ssh key 換成 tpm or fido 但是 就是有一些特定用途需要用到 檔案 private key,通常都是一些自動相關的任務。
這時候可以透過 authproge 來限制 特定的 ssh key 只能執行 特定的 指令。
安裝:
sudo apt-get install authprogs
設定 authorized_keys 讓這個 ssh key 知道要透過 authprogs 執行過慮後的任務:
command="/usr/bin/authprogs --run" ssh-rsa AAAAB3NzaC1yc2EAAAABIwA####GrTQAISp6z6emA3yuXI5qOlIwDb1pzgJqXZU+..../phpkBpJKw== user@host
設定 authprogs.yml 來過慮可以執行的任務:
# Simple commands, no IP restrictions.
-
allow:
-
command: /bin/ip
allow_trailing_args: true
先用一個簡單範例測試,上面範例允許遠端用sshkey登入後執行 ip a
這樣的指令。
之後如果用 key 登入則會出現
authprogs: no SSH command found; interactive shell disallowed.
Shared connection to www.libthomas.org closed.
這樣也會錯
ssh host -i ~/.ssh/id_rsa... ip
這樣才會正確
ssh host -i ~/.ssh/id_rsa... /bin/ip
allow_trailing_args 則使允許參數
其他設定細節:
https://manpages.ubuntu.com/manpages/impish/man1/authprogs.1.html
https://github.com/daethnir/authprogs/blob/main/doc/authprogs.md