В соответствии с человек sshd_config, Я могу указать список поддерживаемых шифров, например:
Ciphers arcfour, 3des-cbc
Проблема в том, что клиентское приложение, работающее на одном хосте, не поддерживает тот же шифр, что и остальная часть сети.
Следовательно, есть ли способ указать шифр для использования во всех случаях, но с одним исключением хоста?
Шифры, перечисленные в Ciphers
Директива должна идти по первому совпадению, поэтому поместите шифр мошеннического клиента последним в списке. Другие клиенты в вашей сети будут сначала согласовывать шифры, расположенные выше в списке, если это возможно, и ваш мошеннический клиент должен пройти через более слабый шифр.
К сожалению, это по-прежнему позволит другим клиентам использовать более слабые шифры, если они установлены явно. Вы не можете поставить Ciphers
директива внутри Match
блок, к сожалению. Другой вариант, о котором я могу думать, - это запустить другой сервер на другом порту для нечетного клиента и ограничить доступ ко второму экземпляру sshd для этого хоста.
Из того, что я вижу, единственный вариант - создать сценарий с помощью ForceCommand.
Использование Match не должно быть слишком сложным:
ForceCommand
Forces the execution of the command specified by ForceCommand,
ignoring any command supplied by the client and ~/.ssh/rc if
present. The command is invoked by using the user's login shell
with the -c option. This applies to shell, command, or subsystem
execution. It is most useful inside a Match block.
Вышеизложенное взято из страниц руководства. Я нашел больше здесь: Скрипт сервера-привратника SSHD
--редактировать--
Лучшее, что я могу собрать, - это запустить отдельный экземпляр SSHD на другом порту и затем добавить -s в один из примеров перенаправления, чтобы поймать только IP-адрес приложения и перенаправить его на другой экземпляр, настроенный с правильным шифром: http://www.cyberciti.biz/faq/linux-port-redirection-with-iptables/