How to use ssh-agent in windows in python?

Cameron Simpson cs at cskk.id.au
Sun May 26 19:13:20 EDT 2019


On 26May2019 22:55, Fc Zwtyds <fczwtyds at gmail.com> wrote:
>  I am using cygwin on Windows 8.1. These two commands work fine in 
>  cygwin:
>ssh-agent -s
>ssh-add ~/.ssh /id_rsa

No, they run without error (apparently). That is  an entirely different 
thing.

In particular, "ssh-agent -s" starts an agent but unless you make use of 
its output, your subsequent commands will have no idea how to access it.

Since ssh-add (apparently) works, then I would guess you _already_ had 
an agent, and it is adding to that agent's keys. And, importantly, 
_ignoring_ the new agent you started.

Try running your commands above again, but _before_ them, run "ssh-add 
-l". If that works then there's already an agent known to the shell and 
your subsequent "ssh-add" is likely adding to that, not to the new agent 
you dispatched.

>  I tried to use them on windows cmd and it worked fine. Now I am 
>going to use python to write code to implement the above command.
>os.system('ssh-agent -s')
>os.system('ssh-add id_rsa')
>There was an error:
>Could not open a connection to your authentication agent.

I'm presuming that as with UNIXy systems, os.system() on Windows issues 
its commands to a distinct shell ( instance of cmd.exe or the like).

As such, since you've made no effort to catch and parse the output of 
"ssh-agent -s" you don't know how to talk to the agent you started, and 
further since you don't pass any information to the shell running 
"ssh-add" then it doesn't know how to do that either.

Cheers,
Cameron Simpson <cs at cskk.id.au>



More information about the Python-list mailing list