Skip to content

Instantly share code, notes, and snippets.

@aubricus
Forked from yuvadm/fabfile.py
Last active November 27, 2022 01:19
Show Gist options
  • Star 6 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save aubricus/5157931 to your computer and use it in GitHub Desktop.
Save aubricus/5157931 to your computer and use it in GitHub Desktop.
Using Fabric to connect to the remote server via an ssh config.
from fabric.api import env
env.use_ssh_config = True
env.forward_agent = True
env.roledefs = {
# key # hostname from config
'foo': ['foo.production'],
}
ForwardAgent yes
Host foo.production
User username
HostName foo.com
IdentityFile /path/to/.ssh/keyname_rsa
from fabric.api import local, run, task, roles
@task
def local_uname():
local('uname -a')
@roles('foo')
@task
def remote_uname():
run('uname -a')
@aubricus
Copy link
Author

The "ssh config" is usually located in ~/.ssh/ and named "config". This gist should support encrypted and unencrypted keys. If you're using an encrypted key you can add the key to ssh-agent to avoid a password request every time you connect to the remote.

References:

@mickaelicoptere
Copy link

Very helpful, thanks a lot !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment