Skip to main content

Adds docker-machine ssh configuration into your personal ssh configuration

Project description



This is a command line program to allow you to use ordinary ssh commands with Docker Machine rather than use docker-machine ssh or docker-machine scp.


usage: docker-machine-add-ssh [-h] [-r] [-d] [-f] [-B] [-S] name

Adds docker-machine ssh configuration to your personal ssh configuration.
Normally, you ssh to a docker-machine using command "docker-machine ssh
<mach>" but after running this utility once for the specified machine, you can
then on use ssh in the normal way, e.g. "ssh <mach>". Other standard programs
such as scp, sftp, rsync, and anything else that relies on them or normal ssh
can then also be used to that docker-machine.

positional arguments:
  name            docker machine name

optional arguments:
  -h, --help      show this help message and exit
  -r, --replace   do not fail if host entry already exists, just replace it
  -d, --delete    just delete any existing host entry
  -f, --files     get parameters directly from files rather than via docker-
                  machine command
  -B, --nobackup  do not create a backup file
  -S, --nostrict  disable strict host key check

Note you can set default starting arguments in ~/.config/docker-machine-add-

See the latest documentation and code at


$ tree foodir
├── a
└── b

# Create a docker machine:
$ docker-machine create vb1

# Login to that machine:
$ docker-machine ssh vb1

# Copy a directory and it's files to the new machine the docker-machine way:
$ docker-machine scp -r foodir vb1:
b             100$    0     0.0KB/s   00:00
a             100%    0     0.0KB/s   00:00

# Or, use docker-machine rsync mode:
$ docker-machine scp -r -d foodir vb1:
sending incremental file list
              0 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=1/3)
              0 100%    0.00kB/s    0:00:00 (xfr#2, to-chk=0/3)

# Instead, do all this normally, after executing docker-machine-add-ssh:
$ docker-machine-add-ssh vb1
vb1 entry added to /home/mark/.ssh/config.

# Login to that machine normally. Be sure to do this first time to clear
# the host check as seen in this example:
$ ssh vb1
The authenticity of host ' (' can't be established.
ECDSA key fingerprint is SHA256:Gya8jUcRhXlO/IkkTicrbLEPmMV0V5uOALB2Y5kJUCc.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '' (ECDSA) to the list of known hosts.

docker@vb1:~$ exit

# Now you can just use normal scp or rsync:
$ scp -pr foodir vb1:
b             100%    0     0.0KB/s   00:00    
a             100%    0     0.0KB/s   00:00 

$ rsync -av foodir vb1:
sending incremental file list

sent 100 bytes  received 17 bytes  234.00 bytes/sec
total size is 0  speedup is 0.00

# Finished with the machine so delete all trace of it:
$ docker-machine rm vb1
About to remove vb1
WARNING: This action will delete both local reference and remote instance.
Are you sure? (y/n): y
Successfully removed vb1

$ docker-machine-add-ssh -d vb1
vb1 entry deleted from /home/mark/.ssh/config.


You can add default arguments to a personal configuration file ~/.config/docker-machine-add-ssh-flags.conf. If that file exists then each line of arguments will be concatenated and automatically prepended to your docker-machine-add-ssh command line arguments. Comments in the file (i.e. starting with "#") are ignored.

This allow you to set default preferred starting arguments to docker-machine-add-ssh. Type docker-machine-add-ssh -h to see the arguments supported. E.g. echo "-r" >~/.config/docker-machine-add-ssh-flags.conf to make docker-machine-add-ssh always replace existing host entries even if they already exist.


Ensure docker-machine is installed.

Arch users can install docker-machine-add-ssh from the AUR.

Python 3.7 or later is required. Note docker-machine-add-ssh is on PyPI so just ensure that python3-pip and python3-wheel are installed then type the following to install (or upgrade):

$ sudo pip3 install -U docker-machine-add-ssh

Alternately, do the following to install from the source repository.

$ git clone
$ cd docker-machine-add-ssh

# Install globally ..
$ sudo pip3 install -U .

# Or, install for yourself only ..
$ pip3 install -U .


$ cd docker-machine-add-ssh  # Source dir, as above
$ git pull

$ sudo pip3 install -U .
# Or, pip3 install -U .


$ sudo pip3 uninstall docker-machine-add-ssh
# Or, pip3 uninstall docker-machine-add-ssh


Copyright (C) 2020 Mark Blakeney. This program is distributed under the terms of the GNU General Public License. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License at for more details.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

docker-machine-add-ssh-1.7.tar.gz (6.5 kB view hashes)

Uploaded Source

Built Distribution

docker_machine_add_ssh-1.7-py3-none-any.whl (9.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page