mirror of https://github.com/docker/docs.git
93 lines
3.5 KiB
Markdown
93 lines
3.5 KiB
Markdown
---
|
|
description: Log into or run a command on a machine using SSH.
|
|
keywords: machine, ssh, subcommand
|
|
title: docker-machine ssh
|
|
---
|
|
|
|
Log into or run a command on a machine using SSH.
|
|
|
|
To login, just run `docker-machine ssh machinename`:
|
|
|
|
```none
|
|
$ docker-machine ssh dev
|
|
## .
|
|
## ## ## ==
|
|
## ## ## ## ===
|
|
/""""""""""""""""\___/ ===
|
|
~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
|
|
\______ o __/
|
|
\ \ __/
|
|
\____\______/
|
|
_ _ ____ _ _
|
|
| |__ ___ ___ | |_|___ \ __| | ___ ___| | _____ _ __
|
|
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
|
|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < __/ |
|
|
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
|
|
Boot2Docker version 1.4.0, build master : 69cf398 - Fri Dec 12 01:39:42 UTC 2014
|
|
docker@boot2docker:~$ ls /
|
|
Users/ dev/ home/ lib/ mnt/ proc/ run/ sys/ usr/
|
|
bin/ etc/ init linuxrc opt/ root/ sbin/ tmp var/
|
|
```
|
|
|
|
|
|
You can also specify commands to run remotely by appending them directly to the
|
|
`docker-machine ssh` command, much like the regular `ssh` program works:
|
|
|
|
```none
|
|
$ docker-machine ssh dev free
|
|
|
|
total used free shared buffers
|
|
Mem: 1023556 183136 840420 0 30920
|
|
-/+ buffers: 152216 871340
|
|
Swap: 1212036 0 1212036
|
|
```
|
|
|
|
Commands with flags work as well:
|
|
|
|
```none
|
|
$ docker-machine ssh dev df -h
|
|
|
|
Filesystem Size Used Available Use% Mounted on
|
|
rootfs 899.6M 85.9M 813.7M 10% /
|
|
tmpfs 899.6M 85.9M 813.7M 10% /
|
|
tmpfs 499.8M 0 499.8M 0% /dev/shm
|
|
/dev/sda1 18.2G 58.2M 17.2G 0% /mnt/sda1
|
|
cgroup 499.8M 0 499.8M 0% /sys/fs/cgroup
|
|
/dev/sda1 18.2G 58.2M 17.2G 0%
|
|
/mnt/sda1/var/lib/docker/aufs
|
|
```
|
|
|
|
If you are using the "external" SSH type as detailed in the next section, you
|
|
can include additional arguments to pass through to the `ssh` binary in the
|
|
generated command (unless they conflict with any of the default arguments for
|
|
the command generated by Docker Machine). For instance, the following command
|
|
forwards port 8080 from the `default` machine to `localhost` on your host
|
|
computer:
|
|
|
|
```bash
|
|
$ docker-machine ssh default -L 8080:localhost:8080
|
|
```
|
|
|
|
## Different types of SSH
|
|
|
|
When Docker Machine is invoked, it checks to see if you have the venerable
|
|
`ssh` binary around locally and attempts to use that for the SSH commands it
|
|
needs to run, whether they are a part of an operation such as creation or have
|
|
been requested by the user directly. If it does not find an external `ssh`
|
|
binary locally, it defaults to using a native Go implementation from
|
|
[crypto/ssh](https://godoc.org/golang.org/x/crypto/ssh). This is useful in
|
|
situations where you may not have access to traditional UNIX tools, such as if
|
|
you are using Docker Machine on Windows without having msysgit installed
|
|
alongside of it.
|
|
|
|
In most situations, you do not need to worry about this implementation detail
|
|
and Docker Machine acts sensibly out of the box. However, if you
|
|
deliberately want to use the Go native version, you can do so with a global
|
|
command line flag / environment variable like so:
|
|
|
|
```bash
|
|
$ docker-machine --native-ssh ssh dev
|
|
```
|
|
|
|
There are some variations in behavior between the two methods, so report
|
|
any issues or inconsistencies if you come across them. |