내 Ubuntu18 VM은 /etc/ssh/sshd_config에서 다음 기본 구성으로 배포되어 5분 동안 활동이 없으면 SSH 세션이 종료됩니다.
ClientAliveInterval 300
ClientAliveCountMax 0
더 높은 값으로 배포하려면 cloud_init.cfg에 어떤 구성을 추가해야 합니까? 보안은 문제가 되지 않습니다.
고쳐 쓰다: 유휴 SSH 세션이 5분 이상 지속되므로 이것을 cloud_init.cfg에 추가하면 Ubuntu16 및 Ubuntu18의 문제가 해결되는 것 같습니다.
write_files:
- path: /etc/ssh/sshd_config
content: |
ClientAliveInterval 30000
ClientAliveCountMax 50
그러나 일반적으로 /etc/ssh/sshd_config 파일에 있는 다른 모든 매개변수는 손실됩니다. 우연히 다른 곳에 상주하는 이 sshd 구성 파일과 동등한 것이 있습니까? 그렇다면 전체 경로와 파일 이름은 무엇이며 이 두 값은 어떻게 생성됩니까?편집됨다른 모든 것을 그대로 유지하시겠습니까?
미리 감사드립니다!
답변1
@dandreye를 확장하면 이러한 항목을 주석 처리할 수 있고 현재 값에 관계없이 올바른 옵션을 설정할 수 있다는 점을 고려하세요.
runcmd:
- sed -i 's/\#\?ClientAliveInterval .\+/ClientAliveInterval 30000/' /etc/ssh/sshd_config
- sed -i 's/\#\?ClientAliveCountMax .\+/ClientAliveCountMax 50/' /etc/ssh/sshd_config
- service ssh restart
그러나 더 나은 옵션은 불필요한 옵션을 주석 처리하고 사용자 정의 구성을 sshd_config.d에 넣는 것입니다.
write_files:
- path: /etc/ssh/sshd_config.d/00-cloud-init
content: |
ClientAliveInterval 30000
ClientAliveCountMax 50
runcmd:
- sed -i 's/\#\?\(ClientAliveInterval .\+\)/#\1/' /etc/ssh/sshd_config
- sed -i 's/\#\?\(ClientAliveCountMax .\+\)/#\1/' /etc/ssh/sshd_config
- service ssh restart
답변2
필요한 것은 전체 파일을 바꾸는 대신 sshd_config에 추가하도록 cloud-init에 지시하는 줄(예: 추가: true)을 포함하는 것입니다. 따라서 cloud_init.cfg
파일은 다음과 같습니다.
---
write_files:
- path: /etc/ssh/sshd_config
content: |
ClientAliveInterval 30000
ClientAliveCountMax 50
append: true
답변3
분명히 이것을 /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