Hacker News new | past | comments | ask | show | jobs | submit login
Asyncssh – Python Asyncio Client/Server Implementation of SSHv2 Protocol (github.com/ronf)
84 points by joshbaptiste on Jan 23, 2016 | hide | past | favorite | 12 comments



As Jeff and I noted on Reddit [0], the author of AsyncSSH, Ron, is very responsive and his work is high quality.

The library is already pretty feature-complete, and just last week the latest release added ssh-agent client support. [1]

[0] https://www.reddit.com/r/Python/comments/41zycz/asyncssh_asy...

[1] https://github.com/ronf/asyncssh/blob/master/docs/changes.rs...


This is pretty cool. SSH is a perfect fit for this - in common application scenarios, most time is spent waiting for the remote host.

I like that is supports all of the modern ciphers (Paramiko, in particular, doesn't). It's also mostly feature-complete. Props to the author, this appears to be the work of a single guy!


This is extremely useful to me. Seems like it can be used to secure communications between the server and the client without having to rely on autossh with SSH tunnels.

I think this can be very useful for establishing reverse SSH connections as well. Instead of having autossh keep track of the SSH session and keep it alive, one can spin up a simple script that starts and persists the connection.


Awesome, I'd like to see more network protocols implemented natively in Python. The language implementations are getting better and better, and well, you're waiting for the network anyway... It also means the work together better: 1 event loop means it's easier to reason about the program execution when using multiple protocols together.


There's already lots of this. That's basically what Twisted is, for example.


Nice! But I wonder about the example in the readme, why the 'yield from'? Doesn't Python support 'await' as an alias for that nowadays?


`await` is Python 3.5+. AsyncSSH is compatible with Python 3.4+.


My concern with the server side of this would be a bug in OpenSSL (which I assume this uses) could give a hacker access to the memory space of all current connections, a feature the default forking servers don't have to worry about. It's a benefit that helped qmail remain secure for so long.

And yet I say this as a creator of an async SMTP server, so I don't think these days it is that big of an issue.


I checked the source and I don't see any references to openssl.

that doesn't mean that it wont get pulled in as a dependency somewhere else.


It uses https://cryptography.io/en/latest/ , the origin of which is described at https://lwn.net/Articles/595790/ . Under the hood that uses OpenSSL.


Great job ! I could not resist to think & share https://github.com/mscdex/ssh2 < SSH2 client/server implementation in nodejs (natural async flow) > piece of art


Looks great.

FWIW, https://pypi.python.org/pypi/parallel-ssh will work with Python2; also does not use threads or processes.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: