Как указано в комментарии, вот пример выполнения такой замены с помощью sed
. Вы использовали тег /linux, поэтому безопасно использовать GNU sed
с его флагом e
для команды s
:
sed -E 'h;s/.*clientMac":\s"([A-Z0-9]{12}).*/echo secretKey\1|md5sum/e;T
G;s/(.*)\s*-\n(.*clientMac":\s")[A-Z0-9]{12}(.*)/\2\1\3/' logfile
Пояснение:
h
сохраняет строку в резервной области, чтобы мы могли восстановить ее после ошибки в строке (-; s/.*clientMac":\s"([A-Z0-9]{12}).*/echo secretKey\1|md5sum/e
соответствует всей строке, помещая фактический MAC в ()
для повторного использования при замене. Замена формирует команду для выполнения:echo
с MCA вместе с «солью» и передает ее в md5sum
. Флаг e
заставляет sed
выполнить это в оболочке и снова поместить результат в буфер T
переходит в конец скрипта, если замена не производилась. Это для печати строк без немодифицированного MAC. Следующие строки выполняются только в том случае, если была произведена замена G
добавляет исходную строку из буфера удержания, так что теперь у нас есть вывод md5sum
, новая строка и исходная строка в буфере s/(.*)\s*-\n(.*clientMac":\s")[A-Z0-9]{12}(.*)/\2\1\3/
фиксирует MD5 в первой паре ()
, строку перед MAC во второй и остальную часть строки после MAC в третьей, таким образом, \2\1\3
заменяет MAC на MD5 I installed OpenSSH server and client
Где?
Port 22 is opened
Нет, это не так. По крайней мере, не к сетевому пути, соединяющему машины.
Начните с проверки связи сервера с клиента. Если это работает (, проверьте IP-адрес ), тогда разрешение имен, маршрутизация и подключение в порядке. Затем проверьте вывод sudo netstat -nap | grep :22 | grep LISTEN
на сервере. Убедитесь, что он прослушивает адрес, к которому вы пытаетесь подключиться.
Если все в порядке, посмотрите на выводiptables -L