Sshpass是使用SSH所谓的“交互式键盘密码身份验证”以非交互方式执行密码身份验证的工具
通俗来说就是 使用ssh密码登录 是需要在连接时手动输入密码的,没办法明文连接,如下图,需要交互的输入密码。
而Sshpass 做的就是通过明文的方式使用ssh,并带来了一些更新鲜的特性
安装
macOS - brew下载安装
1
2
3
4
5安装命令
brew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb
连接到/usr/local/bin (如果提示 command not found)
cd /usr/local/bin
ln -s sshpass ../Cellar/sshpass/1.06/bin/sshpassDebian -
apt install sshpass
Centos -
yum install sshpass
源码安装
1
2
3
4
5wget http://sourceforge.net/projects/sshpass/files/latest/download -O sshpass.tar.gz
tar -xvf sshpass.tar.gz
cd sshpass-1.06
./configure
sudo make install
使用
1 | 简单使用,使用密码 XXX 连接Ip的默认ssh |
高级
远程连接指定ssh的端口
sshpass -p {密码} ssh -p ${端口} {用户名}@{主机IP}
从密码文件读取文件内容作为密码去远程连接主机
sshpass -f ${密码文本文件} ssh {用户名}@{主机IP}
从远程主机上拉取文件到本地
sshpass -p {密码} scp {用户名}@{主机IP}:${远程主机目录} ${本地主机目录}
将主机目录文件拷贝至远程主机目录
sshpass -p {密码} scp ${本地主机目录} {用户名}@{主机IP}:${远程主机目录}
远程连接主机并执行命令
sshpass -p {密码} ssh -o StrictHostKeyChecking=no {用户名}@{主机IP} 'rm -rf /tmp/test'
-o StrictHostKeyChecking=no :忽略密码提示
更多
更多优秀内容,可以通过 关注微信公众号【极客收藏夹】 获取哦!