Deploy ssh public key to multiple servers using python and paramiko
This is a little snippet I wrote to install my publickey onto multiple servers at once. The actual script I use automatically detects all the servers. It is using paramiko to do the actual ssh work.
#!/usr/bin/python import os from getpass import getpass import paramiko def deploy_key(key, server, username, password): client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) client.connect(server, username=username, password=password) client.exec_command('mkdir -p ~/.ssh/') client.exec_command('echo "%s" > ~/.ssh/authorized_keys' % key) client.exec_command('chmod 644 ~/.ssh/authorized_keys') client.exec_command('chmod 700 ~/.ssh/') key = open(os.path.expanduser('~/.ssh/id_rsa.pub')).read() username = os.getlogin() password = getpass() hosts = ["hostname1", "hostname2", "hostname3"] for host in hosts: deploy_key(key, host, username, password)