1 #!/usr/bin/env ruby 2 3 def sync_ssh_key 4 5 # Default servers 6 servers = ['my.server.com'] 7 8 # Use passed in list of servers. 9 servers = $* unless $*.empty? 10 11 servers.each do |server| 12 puts "---------------#{server}----------------" 13 14 puts "Touching .ssh/authorized_keys on #{server}" 15 next unless system("ssh #{server} \"mkdir -p .ssh; touch .ssh/authorized_keys; touch .ssh/authorized_keys2\" ") 16 17 puts "Copying public key to #{server}" 18 next unless system("scp ~/.ssh/id_rsa.pub #{server}:.ssh/authorized_keys") 19 next unless system("scp ~/.ssh/id_rsa.pub #{server}:.ssh/authorized_keys2") 20 21 puts 'Setting public key permissions' 22 next unless system("ssh #{server} \"chmod 700 .ssh; chmod 600 .ssh/authorized_keys; chmod 600 .ssh/authorized_keys2\"") 23 end 24 25 end 26 27 28 sync_ssh_key if __FILE__ == $0
Syncing Your SSH Keys with Ruby
June 4th, 2008 Add Your Comments
Respond
Mandatory fields are marked as *
