python 中sshpass的使用
2024-08-23 13:10:40
如何用SSH连接远程服务器有两种方式
1.利用远程软件控制:sshclient、Puttty、secureCRT等
2、终端命令 ssh -p 22 root@服务器ip
密码需要手工交互式输入(22: 端口号 root: 用户名)
ssh登陆不能在命令行中指定密码。sshpass的出现,解决了这一问题。sshpass用于非交互SSH的密码验证,可以 -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 如下提示即安装成功:
2.用法介绍
# 免密码登录
$ sshpass -p password ssh username@host
sshpass -p A123456 ssh root@192.168.56.102
#从文件获取密码
$
sshpass -f userpasswd
.txt ssh root@192.168.56.102
#从环境变量获取密码
$> export SSHPASS="password"
$> sshpass -e ssh username@x.x.x.x
# 远程执行命令 $ sshpass -p password ssh username@host <cmd>
# 通过scp上传文件 $ sshpass -p password scp local_file root@host:remote_file # 通过scp下载文件 $ sshpass -p password scp root@host:remote_file local_file
# 循环执行多台机器的命令
for
i
in
$(
cat
/root/1
.txt)
do
echo
$i
sshpass -p123456
ssh
root@$i
'ls -l'
done
忽略RSA Key检查信息
第一次认证一般会有RSA key
检查的提示:
The authenticity of host ’10.x.x.x (10.x.x.x)' can't be established.
RSA key fingerprint is a4:eb:8c:7d:2a:ef:d6:1c:a3:0c:e8:e5:00:d2:eb:60.
Are you sure you want to continue connecting (yes/no)?
可以使用-o StrictHostKeychecking=no
选项来忽略key检查信息。sshpass -p "$SSH_PASSWD" ssh root@"$host" -o StrictHostKeyChecking=no "$@" 2>/dev/null
最新文章
- winform中选择文件获取路径
- NOIp 2014 #4 无线网络发射器选址 Label:模拟
- Python::OS 模块 -- 进程管理
- UITableViewdataSourse的协议所有方法
- linux命令详解--tcpdump
- php preg_match 和preg_match_all
- JQuery的隐式迭代和each函数和map函数
- C++编程练习(12)----“有向图的拓扑排序“
- Android开发之漫漫长途 Ⅱ——Activity的显示之Window和View(2)
- redis 简易监控的几种方法
- .NetCore2.1 WebAPI新增Swagger插件
- Java -- JDBC 学习--事务
- CentOS 安装 MongoDB
- 十:python 对象类型详解六:文件
- bzoj4129 Haruna’s Breakfast 莫队
- spring boot集成RabbitMQ
- 后台测试常需要的htm样式
- vim tab设置为4个空格
- FTP如何通过Windows防火墙
- 数据库选型之MySQL(普通硬盘)