在服务器运维工作中,经常需要管理几百台服务器,为了提高工作效率,今天给大家介绍sshpass工具,在不用输了密码情况下ssh登录,在这节文章中给大家介绍sshpass命令及linux系统中的应用场景。
在Linux系统中,ssh是一种远程登录协议,可以让用户在不同主机之间进行安全的远程登录。但是,在使用ssh时,通常需要输入密码验证身份,这样会导致在批量部署或自动化操作时出现问题。sshpass命令就是为了解决这个问题而被设计出来的。
先安装 sshpass 软件
yum install -y sshpass
直接远程连接某台主机
sshpass -p 'password' ssh username@hostname
从远程主机上拉取文件到本地
拉取文件
命令: sshpass -p 'password' scp username@ip:/远程文件目录/远程服务器文件/本地文件目录/
上传文件
命令:sshpass -p 'password' scp /本地路径/文件名 username@ip:/远程服务器目录
在实际工作中,如果需要频繁登录多台服务器进行操作,首先使用ssh-keygen命令生成ssh密钥,
准备好ip列表
ip.txt
192.168.x.x
192.168.x.x
192.168.x.x
192.168.x.x
192.168.x.x
192.168.x.x
通过脚本批量操作
#!/bin/bash
USER=root
PASS=password
for IP_host in `cat ip.txt`
do
ping -c 1 -w 1 ${IP_host} &>/dev/null
if [ $? -eq 0 ];then
(sshpass -p ${PASS} ssh-copy-id -o StrictHostKeyChecking=no ${IP_host})
fi
done
-o StrictHostKeyChecking=no选项,表示远程连接时不提示是否输入yes/no
后面文章将会为大家介绍,批量修改密码,批量重启服务操作。