В настоящее время я использую следующее в своем bash-файле, чтобы изменить конфигурацию SSH с #PermitRootLogin yes на PermitRootLogin no. Однако иногда в файле конфигурации SSH есть #PermitRootLogin no, и мне просто хочется его раскомментировать. Как я могу обновить свою команду, чтобы она работала в обоих случаях?
#! /bin/sh
sed -i -e "s/#PermitRootLogin yes/PermitRootLogin no/" /etc/ssh/sshd_config





Попробуйте заменить свой код на этот:
sed -i -e 's/^\(#*\)PermitRootLogin *(yes|no)/PermitRootLogin no/g' /etc/ssh/sshd_config
Искренне.
Такое ощущение, что вы хотите каждый раз применять PermitRootLogin no, поэтому просто замените всю строку на свою настройку.
sed -i -Ee 's/^#?(PermitRootLogin)[[:space:]].*/\1 no/' /etc/ssh/sshd_config
И не забудьте после этого перезапустить sshd.
У меня это не сработало. Оно все равно уходит
#PermitRootLogin no