Usage¶
ssh-deploy-key [ options ] [ remote host[s] ]
Options¶
usage: ssh-deploy-key [-h] [-a AUTHORIZED_KEYS] [-d] [-k KEY_FILE]
[-m TIMEOUT_SECONDS] [-o PORT] [-p PASSWORD]
[-s SSH_DIR] [-t THREADS] [-u USERNAME]
[hosts [hosts ...]]
Distribute an ssh key to remote hosts.
positional arguments:
hosts Zero or more remote hosts to receive the ssh key. If
this value is unspecified, remote hosts will be read
from standard in.
optional arguments:
-h, --help show this help message and exit
-a AUTHORIZED_KEYS, --authorized_keys AUTHORIZED_KEYS
Name of the remote authorized keys file. (Changing
this setting is uncommon.)
-d, --append Add the ssh key to the end of the remote authorized
keys file instead of overwriting it. (SMART APPEND
NOT YET IMPLEMENTED). Default is false.
-k KEY_FILE, --key_file KEY_FILE
Path to the local public ssh key file. Default is
~/.ssh/id_rsa.pub
-m TIMEOUT_SECONDS, --timeout_seconds TIMEOUT_SECONDS
Timeout value (in seconds) for connecting to each
host. Default is 3
-o PORT, --port PORT The ssh port to connect to the remote hosts on.
Default is 22
-p PASSWORD, --password PASSWORD
Password to use on remote hosts. If not specified
here, you will be prompted for this interactively.
-s SSH_DIR, --ssh_dir SSH_DIR
Directory to copy the key into on the remote host.
Default is ~/.ssh
-t THREADS, --threads THREADS
Number of threads to use for simultaneous key
distribution. Default is 100.
-u USERNAME, --username USERNAME
Username to use on remote hosts. Default is <current user>
Examples¶
These are some of the common ways to use ssh-deploy-id
Specifying remote hosts interactively¶
ssh-deploy-key can run interactively. The user will be prompted for additional hosts until typing ‘exit’ or ^D.
[~/git/ssh-deploy-key/bin]$ ./ssh-deploy-key
Enter common password for remote hosts:
Distributing key '/Users/travis/.ssh/id_rsa.pub' to remote hosts in overwrite mode.
Enter one hostname per line. Terminate with 'exit' or ^D.
192.168.1.112
copying key to travis@192.168.1.112:~/.ssh/authorized_keys... [SUCCESS!]
192.168.1.113
copying key to travis@192.168.1.113:~/.ssh/authorized_keys... [SUCCESS!]
exit
Note that if you do not specify a password for the remote host on the command line, you will prompted for it interactively.
Specifying remote hosts on the command line¶
[~/git/ssh-deploy-key/bin]$ ./ssh-deploy-key 192.168.1.112 192.168.1.101
Enter common password for remote hosts:
Distributing key '/Users/travis/.ssh/id_rsa.pub' to remote hosts in overwrite mode.
copying key to travis@192.168.1.112:~/.ssh/authorized_keys... [SUCCESS!]
copying key to travis@192.168.1.101:~/.ssh/authorized_keys... [SUCCESS!]
With Shell Redirection¶
ssh-deploy-key accepts piped input. For example, if you had a script to generate a list of hosts, you could run it this way
get_host_list.sh | ssh-deploy-key
From a data File¶
If you have a data file listing your hosts already, you can redirect standard in from the file
ssh-deploy-key < host_list
Specifying the username and password on the command line¶
ssh-deploy-key -u root -p p@ssw0rd host1