Tente isso (eu testei na minha máquina e parece funcionar - bem, eu não tinha nenhum duplicado para remover, mas ...):
ssh [email protected] "awk '!seen[\ssh [email protected] "awk '!seen[\%pre%]++' /root/.ssh/authorized_keys > /root/.ssh/authorized_keystemp"
]++' /root/.ssh/authorized_keys > /root/.ssh/authorized_keystemp"
Suas tentativas de "
-quote não funcionaram porque você não usou a barra invertida de $
em $0
, o que levou a expansão para algo como bash
.
Sua tentativa de citar uma única citação não funcionou porque 'foo\'some thing\'foo'
não significa o que você acha que faz. \
-escapes não são interpretados dentro de strings entre aspas simples. Então, isso é, na verdade, citações desequilibradas e dois argumentos; o primeiro é foo\some
e o segundo é thing'foo
, mas não está completo porque o último '
inicia uma nova cadeia entre aspas simples.
O escape de conchas pode ser uma dor, especialmente com escape duplo. Enviar um script de shell (com sftp
, scp
, etc.) primeiro e, em seguida, executar isso geralmente é mais fácil.