Ubuntu

使用 cloud init config 更改 /etc/ssh/sshd_config 中的預設值

  • December 17, 2021

我的 Ubuntu18 虛擬機在部署時在 /etc/ssh/sshd_config 中提供了以下預設配置,這使我進入它們的 ssh 會話在 5 分鐘不活動時終止:

ClientAliveInterval 300
ClientAliveCountMax 0

我應該將哪個配置添加到我的 cloud_init.cfg 中以使它們都以更高的值部署?安全不是問題。

更新:將此添加到 cloud_init.cfg 似乎可以解決 Ubuntu16 和 Ubuntu18 的問題,因為我的空閒 ssh 會話持續 >5 分鐘:

write_files:
 - path: /etc/ssh/sshd_config
   content: |
        ClientAliveInterval 30000
        ClientAliveCountMax 50

但是,/etc/ssh/sshd_config 文件中通常存在的所有其他參數都將失去。是否有這個 sshd 配置文件的等價物偶然駐留在其他地方,如果有的話,完整路徑和文件名是什麼,我如何只編輯其中的這 2 個值,而其他所有內容都完好無損?

提前謝謝了!

顯然,將這個添加到 /etc/ssh/sshd_config 可以解決問題(經過測試,有效):

runcmd:
 - sed -i 's/ClientAliveInterval 300/ClientAliveInterval 30000/' /etc/ssh/sshd_config
 - sed -i 's/ClientAliveCountMax 0/ClientAliveCountMax 50/' /etc/ssh/sshd_config
 - service ssh restart

您需要包含一行來告訴 cloud-init 附加到 sshd_config 而不是替換整個文件,即 append: true。因此,您的cloud_init.cfg文件將如下所示:

---
write_files:
 - path: /etc/ssh/sshd_config
   content: |
        ClientAliveInterval 30000
        ClientAliveCountMax 50
   append: true

引用自:https://unix.stackexchange.com/questions/621928