Вы можете использовать airmon-ng, только если у вас есть отдельный USB WiFi адаптер! Это очень важно, без него невозможно использовать airmon-ng.
Когда вы запускаете команду через ssh
, она запускается путем вызова вашего $ SHELL
с флагом -c
:
-c If the -c option is present, then commands are read from
the first non-option argument command_string. If there are
arguments after the command_string, the first argument is
assigned to $0 and any remaining arguments are assigned to
the positional parameters.
Итак, ssh remote_host "bash -c foo"
действительно будет запущен:
/bin/your_shell -c 'bash -c foo'
Теперь, поскольку команда, которую вы выполняете ( export foo = bar
), содержит пробелы и неправильно цитируется для формирования целого , экспорт
принимается как команда для выполнения, а остальные сохраняются в массиве позиционных параметров. Это означает, что выполняется export
, и foo = bar
передается ему как $ 0
. Конечный результат такой же, как при выполнении
/bin/your_shell -c 'bash -c export'
. Правильная команда:
ssh remote_host "bash -c 'export foo=bar'"
ssh
объединяет аргументы с пробелами и интерпретирует их оболочкой входа в систему удаленного пользователя, поэтому в:
ssh localhost bash -c 'export foo=bar'
ssh
запрашивает удаленную оболочку интерпретировать команду
bash -c export foo=bar
(фактически, если удаленный хост является Unix-подобным, он будет запускать удаленную оболочку с аргументами the-shell
, -c
и bash -c export foo = bar
).
Большинство оболочек интерпретируют эту командную строку как выполнение команды bash
с bash
, -c
, export
и foo = bar
в качестве аргументов (так что запустите export
, а $ 0
содержит foo = bar
), тогда как вы хотите, чтобы он запускал его с bash
, -c
и экспортируют foo = bar
в качестве аргументов.
Для этого вам нужно будет использовать командную строку, например:
ssh localhost "bash -c 'export foo=bar'"
(или:
ssh localhost bash -c \'export foo=bar\'
, если это важно), чтобы командная строка:
bash -c 'export foo=bar'
передавалась удаленной оболочке. Эта командная строка будет интерпретироваться большинством оболочек как выполнение команды bash
с bash
, -c
и export foo = bar
в качестве аргументов. . Обратите внимание, что использование
ssh localhost 'bash -c "export foo=bar"'
не будет работать, если оболочка входа удаленного пользователя была rc
или es
, например, где "
не является специальным оператором цитирования.Одиночные кавычки являются наиболее переносимыми операторами цитирования (хотя есть некоторые различия в их интерпретации между оболочками, см. Как выполнить произвольную простую команду через ssh, не зная оболочки входа удаленного пользователя? для получения дополнительной информации. на что).