authprogs

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