Есть более простой способ: используйте директиву match в файле конфигурации ssh:
Match Exec "nc -z 127.0.0.1 1086"
ProxyCommand nc -X 5 -x 127.0.0.1:1086 %h %p
Эта директива будет выполняться каждый раз, когда вы ssh (Соответствует всем ). Сначала он пытается подключиться к вашему прокси-серверу shadowsocks, используяnc
:параметр -z, который просто означает проверку порта без ввода-вывода. Мой прокси-сервер ssocks работает на порту 1086. Если он работает, установите ProxyCommand, если нет, не делайте этого и подключайтесь нормально, без прокси.
grep
принимает ввод трубы, нет возможности отклонить его.
Здесь происходит то, что grep -q
закроет входной конвейер, как только найдет шаблон. Сообщения исходят от openssl
, потому что он не может писать в канал после его закрытия.
В этом случае следует добавить -noout
к параметрам openssl
, чтобы отключить запись сертификата.