我有空格分隔文件,其中包含ip地址和凭据,如下所示:
10.0.0.1 user_master password_master
10.0.0.3 user_slave1 password_slave1
...
10.0.0.20 user_slave20 password_slave20
我想在master(第一行)和所有其他slave之间创建相互无密码的ssh登录。所有机器都是新的Ubuntu 14.04,没有安装openssh-server
。
现在我可以使用ssh-keygen
和ssh-copy-id
创建公钥登录而无需手动逐个输入密码,但是当有很多机器时,这很乏味。
我想知道如何编写脚本来自动执行此过程。我觉得很难,特别是当我必须在ssh之后将凭证传递给其他机器然后退出。
或者是否有为此自动化任务设计的开箱即用工具?
答案 0 :(得分:0)
您可以创建简单的bash脚本ex:upload.sh
并编写一些自动化脚本:
#!/bin/bash
remote_host=(192.168.1.1 192.168.1.2 192.168.1.3 172.90.44.21)
for i in "${remote_host[@]}"
do
echo Uploading SSH Key to Host : $i
ssh-copy-id -i ~/.ssh/id_rsa.pub $i
done
您可以在remote_host
阵列上输入您的远程地址
使其可执行
chmod upload.sh
然后执行它
./upload.sh