Achei que isso funcionou para mim, embora não estivesse relacionado a caminhos, mas a serviços:
ssh username@ipaddress 'net start \"TightVNC Server\"'
Estou tentando executar um script remoto no windows sobre o ssh e não consigo descobrir como lidar com as aspas. (O host e o cliente são máquinas Windows.) Esta é a instrução que funciona bem na máquina host:
C:\> python "C:\folder path\file.py"
Procurei aparentemente em todos os lugares e tentei aparentemente tudo, mas não consigo fazer isso funcionar:
C:\> ssh user@ipaddress "python ""C:\folder path\file.py"""
python: can't open file 'C:\folder': [Errno 2] No such file or directory
Eu tentei usar aspas duplas, tentei aspas simples, tentei '\' como um caractere de escape, tentei '^' e nada parece passar a string corretamente. Alguma ajuda?!
EDITAR: Um usuário sugeriu que eu usasse '-v' com ssh para rastrear o caminho. Fazendo isso, parece que as aspas duplas realmente fazem o que eu esperava, mas de alguma forma a máquina host interpreta o comando de forma errada, e objetos para o espaço. Não tenho certeza porque ...
Para ser claro, use isso:
C:\> ssh -v user@ipaddress "python ""C:\folder path\file.py"""
Eu vejo isso nos resultados:
debug1: Sending command: python "C:\folder path\file.py"
python: can't open file 'C:\folder': [Errno 2] No such file or directory
NOVAMENTE, para ficar mais claro, este comando funciona PERFEITAMENTE quando estou phsyically na máquina host:
C:\> python "C:\folder path\file.py"
Então, não estou claro por que / onde isso está sendo estragado. Obrigado por qualquer ajuda, todos vocês ajudaram imensamente até agora.
O aplicativo OpenSSH ssh
is * nix, portanto, as regras * nix se aplicam ao analisar sua linha de comando
ssh user@ipaddress "python \"C:\folder path\file.py\""