Linux机器日常运维过程中,经常需要在本地运行脚本执行针对远程主机的命令。正常情况下,ssh登陆远程机器时会提示输入密码,这会影响到脚本的自动执行,(因为shell脚本中没有自动填充密码的命令)。
ssh登陆不能在命令行中指定密码,需要用户交互输入密码,sshpass 的出现,解决了这一问题。它允许你用 -p 参数指定明文密码,然后直接登录远程服务器。
它支持密码从命令行、文件、环境变量中读取。
1、下载:
sudo apt-get install sshpass来安装。
2、sshpass用法和命令介绍
3、用法范例
从当前服务器新建一个名叫ssh_remote_test.sh的文件。
vim ssh_remote_test.sh
#!/bin/bash
sshpass -p 123456 ssh shijianfeng@192.168.64.137 'cd ~/fisco/192.168.64.137/node0 && ls'
其中,远程服务器的ip是192.168.64.137,用户为shijiafeng,密码为123456
登录成功之后执行命令'cd ~/fisco/192.168.64.137/node0 && ls'
保存。
脚本成功通过sshpass工具实现了免密码登录远程服务器。
4. 若是第一次没有反应
则使用ssh先登录一遍,再试