No se puede acceder al directorio OpenSSH desde los procesos de Python en Windows 10

No se puede acceder al directorio OpenSSH desde los procesos de Python en Windows 10

Estoy ejecutando Windows 10, completamente actualizado, y Python 3.7.

Puedo ver el contenido de c:\Windows\System32\OpenSSH a través de cmd y PowerShell, y puedo ejecutar el comando ssh normalmente.

Sin embargo, si inicio un proceso de Python, este archivo no es visible y os.path.exists("c:\\Windows\\System32\\OpenSSH")devuelve False. Si luego inicio una instancia de cmd o Powershell en un subproceso, ese directorio no es visible.

Estoy intentando utilizar Pipenv, una herramienta de gestión de dependencias de Python, que creará una instancia de un nuevo shell con el entorno correcto como parte de su gestión de procesos.

Esto da como resultado comportamientos como:

C:\Users\micro>dir c:\Windows\System32\OpenSSH\ssh.exe
Volume in drive C is OS
Volume Serial Number is AEDD-9508

Directory of c:\Windows\System32\OpenSSH

28/09/2017  15:49           851,456 ssh.exe
            1 File(s)        851,456 bytes
            0 Dir(s)  175,094,468,608 bytes free

C:\Users\micro>pipenv run dir c:\Windows\System32\OpenSSH\ssh.exe
The system cannot find the file specified.

C:\Users\micro>

He consultado con otros usuarios y no tienen este problema.

Me aseguré de que todas las actualizaciones se apliquen a Windows e intenté eliminar y volver a agregar la función OpenSSH.

Si alguien tiene alguna pista sobre qué información sería útil para depurar esto, me encantaría escucharla.

Respuesta1

Tuve exactamente el mismo problema y encontré la solución en este hilo: https://stackoverflow.com/questions/41630224/python-does-not-find-system32

Windows realmente está buscando en SysWOW64; mi código para arreglar esto fue

system32 = os.path.join(os.environ['SystemRoot'], 'SysNative' if 
platform.architecture()[0] == '32bit' else 'System32')
listtest_path = os.path.join(system32, 'openSSH', 'ssh-keygen.exe')
subprocess.call([listtest_path])

información relacionada