Трудно сказать наверняка, не видя фактической полной команды, но я предполагаю, что вы, вероятно, сталкиваетесь с проблемами цитирования, потому что команда проходит через две оболочки (локальная оболочка -> туннель 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\""
Это также работает, но здесь двойные кавычки используются как для внешнего, так и для внутреннего слоя, поэтому внутренний слой должен быть экранирован.