如何使shell脚本自动输入值

时间:2016-10-14 14:10:22

标签: bash shell ssh scripting automation

我正在尝试使用以下小脚本将ssh公钥复制到我网络上的所有主机

#!/bin/bash
for ip in $(nmap -n -sn 192.0.2.0/24 -oG - | awk '/Up$/{print $2}'); do
  ssh-copy-id vagrant@$ip
done

但是,它要求每个IP的密码,在执行脚本之前该计数是未知的。如何让这个脚本自动输入密码(在这种情况下对所有主机都是一样的)?

1 个答案:

答案 0 :(得分:0)

使用sshpass。请注意,在脚本中存储密码不是一个好主意,但它可以完成设置的工作:

#!/bin/bash
for ip in $(nmap -n -sn 192.0.2.0/24 -oG - | awk '/Up$/{print $2}'); do
  sshpass -p password ssh-copy-id vagrant@$ip
done