Когда вы настраиваете iptables или SSH через SSH, а центр обработки данных находится в тысячах километров (а заставить кого-то подключить KVM сложно), каковы стандартные методы предотвращения блокировки?
Был похожий вопрос Настроить iptables через SSH без блокировки?
Я размещаю здесь советы, которые дал в предыдущем вопросе:
1) Я создаю резервную копию старого файла конфигурации iptables:
cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak
2) Перед тем, как попробовать новые настройки, выполните эту команду, чтобы убедиться, что вы можете подключиться обратно, если что-то в новых настройках заблокирует вас (в основном это заменяет старые правила через 5 минут):
echo "mv /etc/sysconfig/iptables.bak /etc/sysconfig/iptables && service iptables restart" | at now + 5min
3) Теперь вы можете смело изменять правила iptables. Если что-то пойдет не так, вы можете подключиться снова в течение 5 минут.
Если вам нужно изменить конфигурацию SSH, например, в /etc/ssh/sshd_config
: Оставить сеанс открытым в другом терминале. Обычно он остается открытым, но, конечно, вы можете использовать тот же трюк, что и в сообщении @ shardan, и для конфигурации SSH.
Другой способ убедиться, что у вас есть доступ, - использовать флаг -R для ssh на удаленном сервере:
/usr/bin/ssh -R 55555:localhost:22 user@your.otherserver.com
Теперь с your.otherserver.com вы можете войти на удаленный компьютер, используя:
ssh localhost -p 55555
Чтобы убедиться, что я не заблокирован более 5 минут, я запускаю задание cron, которое запускает следующий сценарий оболочки на удаленном сервере:
#! /bin/sh
GREPSSH=$(ps ax|grep serverkey|awk -F ' ' '{print $1}')
if [ "$GREPSSH" -eq NULL ]
then
echo "no sshlink \n"
/usr/bin/ssh -nNT -i ~/.ssh/serverkey -R 55555:localhost:22 -o ServerAliveInterval=60 -o ExitOnForwardFailure=yes user@your.otherserver.com &
else echo $GREPSSH
exit 1
fi
Этот сценарий:
Я обнаружил, что это полезный инструмент для возврата к удаленным машинам: ~)