ssh登陆不能在命令行中指定密码。sshpass的出现,解决了这一问题。sshpass用于非交互SSH的密码验证,一般用在sh脚本中,无须再次输入密码。
它允许你用 -p 参数指定明文密码,然后直接登录远程服务器,它支持密码从命令行、文件、环境变量中读取。
其默认没有安装,需要手动安装,方法如下:
sshpass下载地址:http://sourceforge.net/projects/sshpass/ 下载为一个 tar.gz的压缩包。
$ tar -zxvf sshpass-1.05.tar.gz
$ cd sshpass-1.05
$ ./configure --prefix=/opt/sshpass #指定安装目录
$ make
$ make install
$ cp /opt/sshpass/bin/sshpass /usr/bin/
经过以上步骤,sshpass安装完成,输入命令 sshpass 如出现如下提示即安装成功:
sshpass -p123456 ansible-playbook -i hosts.ini create_users.yml -u root -k
解决了我大问题,哈哈哈,加上自动化运维ansible-playbook ,值得一学!