2

The Getting Started docs for asyncssh give the following hello example:

import asyncio, asyncssh, sys

async def run_client():
    async with asyncssh.connect('localhost') as conn:
        result = await conn.run('echo "Hello!"', check=True)
        print(result.stdout, end='')

try:
    asyncio.get_event_loop().run_until_complete(run_client())
except (OSError, asyncssh.Error) as exc:
    sys.exit('SSH connection failed: ' + str(exc))

However, this will not run, because async with is not supported in Python 3.4:

async with asyncssh.connect('localhost', username='squirtle', password='xxxxxxxxxxxx') as conn:
     ^
laycat
  • 5,381
  • 7
  • 31
  • 46

2 Answers2

2

I went and did it, this works for me.

@asyncio.coroutine
def run_client():
        with(yield from asyncssh.connect('localhost', username='root', password='xxxxxxxx')) as conn:
                result = yield from conn.run('ls', check=True)
                print(result.stdout, end='')
laycat
  • 5,381
  • 7
  • 31
  • 46
2

async keyword was introduced in Python 3.5, you should use asyncio.corutine in earlier versions.

Check PEP492 and Python 3.5 release notes

Also you would like to check this SO Question and answers

Netwave
  • 40,134
  • 6
  • 50
  • 93