无密码登录为ubuntu设置自动化

时间:2015-12-01 23:45:45

标签: bash ubuntu ssh

我有空格分隔文件,其中包含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-keygenssh-copy-id创建公钥登录而无需手动逐个输入密码,但是当有很多机器时,这很乏味。

我想知道如何编写脚本来自动执行此过程。我觉得很难,特别是当我必须在ssh之后将凭证传递给其他机器然后退出。

或者是否有为此自动化任务设计的开箱即用工具?

1 个答案:

答案 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