Трудно сказать наверняка, не видя фактической полной команды, но я предполагаю, что вы, вероятно, сталкиваетесь с проблемами цитирования, потому что команда проходит через две оболочки (локальная оболочка -> туннель ssh -> удаленная оболочка -> команда codeign)). Каждая оболочка интерпретирует и удаляет кавычки и экранирует их перед передачей строк, и вы хотите, чтобы эти двойные кавычки интерпретировались конечной оболочкой, поэтому вам может потребоваться добавить еще один слой кавычек. Вот некоторые примеры:
ssh user@server codesign --force --deep-verify --verbose --sign "CERT NAME"
Это не работает, потому что двойные кавычки интерпретируются и удаляются локальной оболочкой, поэтому последняя команда (эффективно) имеет имя сертификата без кавычек.
ssh user@server 'codesign --force --deep-verify --verbose --sign "CERT NAME"'
Это работает, потому что внешние (одиночные) кавычки удаляются локальной оболочкой, оставляя внутренние (двойные) кавычки для интерпретации удаленной оболочкой, поэтому она передаст все имя сертификата команде codesign
в качестве единственного аргумента. ,
ssh user@server "codesign --force --deep-verify --verbose --sign \"CERT NAME\""
Это также работает, но здесь двойные кавычки используются как для внешнего, так и для внутреннего слоя, поэтому внутренний слой должен быть экранирован.