Skip to main content

Adds docker-machine ssh configuration into your personal ssh configuration

Project description

DOCKER-MACHINE ADD SSH

PyPi AUR

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

Type docker-machine-add-ssh -h to view the usage summary:

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

options:
  -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 options in
$HOME/.config/docker_machine_add_ssh-flags.conf.

EXAMPLES

$ tree foodir
foodir
├── a
└── b

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

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

# 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
foodir/a
              0 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=1/3)
foodir/b
              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 '192.168.99.100 (192.168.99.100)' 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 '192.168.99.107' (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.

DEFAULT OPTIONS

You can add default options 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 options. Comments in the file (i.e. starting with "#") are ignored.

This allow you to set default preferred starting options to docker-machine-add-ssh. Type docker-machine-add-ssh -h to see the options 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.

INSTALLATION

Python 3.7 or later is required. Ensure docker-machine is installed.

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

Note docker-machine-add-ssh is on PyPI so the easiest way to install it is to use uv tool (or pipx or pipxu).

$ uv tool install docker-machine-add-ssh

To upgrade:

$ uv tool upgrade docker-machine-add-ssh

To uninstall:

$ uv tool uninstall docker-machine-add-ssh

LICENSE

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 https://en.wikipedia.org/wiki/GNU_General_Public_License 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.9.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

docker_machine_add_ssh-1.9-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

File details

Details for the file docker_machine_add_ssh-1.9.tar.gz.

File metadata

File hashes

Hashes for docker_machine_add_ssh-1.9.tar.gz
Algorithm Hash digest
SHA256 55864cf15060e7abe3779a4b345fdf6d07bcf1c4e406080e66ee051902cc8b6f
MD5 67acbdd69e3edc4b8449ff25e68e7997
BLAKE2b-256 bb5d2b8be9be9552f28c38ea53b254deab4fa6ed9395c5bbc62e6e86e31485c5

See more details on using hashes here.

File details

Details for the file docker_machine_add_ssh-1.9-py3-none-any.whl.

File metadata

File hashes

Hashes for docker_machine_add_ssh-1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 855fadd56b32cff1fe64d5fd9ba18a984374cbcd9a6adc1900c4e625b4551d5f
MD5 3d49af958f2c2129c45a162f95705881
BLAKE2b-256 1bc141b11158316c379caa73211d9d1ff5e1eb266e37bd4ac6c75a9e5801064a

See more details on using hashes here.

Supported by

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