Executando o comando ssh remoto com espaços?

0

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.

    
por lukehawk 03.11.2016 / 22:28

2 respostas

1

Achei que isso funcionou para mim, embora não estivesse relacionado a caminhos, mas a serviços:

ssh username@ipaddress 'net start \"TightVNC Server\"'
    
por 09.02.2017 / 17:11
1

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\""
    
por 03.11.2016 / 23:01