1.ssh命令带密码 sshpass
有时候,我们在写脚本的时候,我们ssh到一台客户机执行命令的时候,如果客户机设置了密码,这时候,就会提示我们需要通过交互式的方式输入密码。当我们不想执行这一步操作的时候,我们可以在ssh的同时带上密码,不用我们手动输入。
先安装一个软件包
yum install -y sshpass
只需要在ssh命令的前面带上sshpass就可以了
sshpass -p ‘密码’ ssh 用户名@ip -o StrictHostKeyChecking=no 要执行的命令
sshpass -p 'redhat' ssh root@192.168.1.1 -o StrictHostKeyChecking=no systemctl restart nginx
即可实现不用交互式输入密码登录,执行命令。
首次登录时如果不带-o StrictHostKeyChecking=no,则无法成功登录。
2.批量修改密码
命令
sshpass -p "111111" ssh -o StrictHostKeyChecking=no root@192.168.101.91 "echo 'Softsec@2020CN' |passwd --stdin root"
sql
SELECT 'sshpass -p ''111111'' ssh '|| a.ip|| ' -o StrictHostKeyChecking=no "echo '''||pwd||''' | passwd --stdin root"' FROM ecs_t a where a.name like '%\_area\_%' escape '\' order by a.name,a.ip
批量生成命令后,复制到shell脚本中执行,如果执行复制到窗口中执行,只能改到第一个。
3.批量传输文件
sshpass -p '111' scp /home/fonts.zip root@xxxx:/home