sshpass

sshpass工具允许在不交互输入密码的情况下执行SSH登录和SCP复制。它可以读取密码从命令行、文件或环境变量。例如,通过 `-p` 参数直接指定密码登录远程服务器,或者用 `-f` 读取文件中的密码,或通过 `-e` 使用环境变量。此外,`-oStrictHostKeyChecking=no` 参数可以禁用主机密钥检查。该工具还可用于执行远程命令,如创建文件、删除文件等。
摘要由CSDN通过智能技术生成

sshpass:用于非交互的ssh 密码验证
使用 -p 参数指定明文密码,然后直接登录远程服务器。 它支持密码从命令行,文件,环境变量中读取
1、从命令行方式传递密码
sshpass -p user_password ssh user_name@192.168.1.2  【登录远程机器】
sshpass -p user_password scp -P22 root@192.168.1.2:/home/test  ./ 【远程机器/home/test 复制到本机当前目录】
还可以加参数 -q 【去掉进度显示】

2、从文件读取密码
echo "user_password" > user.passwd
sshpass -f user.passwd ssh user_name@192.168.1.2

3、从环境变量获取密码
export SSHPASS="user_password"
sshpass -e ssh user_name@192.168.1.2 

4、sshpass -p user_password ssh  -o StrictHostKeyChecking=no  user_name@192.168.1.2 
【-o StrictHostKeyChecking=no 表示远程连接时不提示是否输入yes/no】

5、使用sshpass远程免密,在远程主机上执行shell命令,如下远程执行命令:touch /opt/file.txt
sshpass -p user_password ssh  -o StrictHostKeyChecking=no  user_name@192.168.1.2  touch /opt/file.txt
[注:shell命令要和sshpass命令写在一行]

6、sshpass远程ssh到目标机器执行命令:
sshpass -p密码 ssh -o StrictHostKeyChecking=no 用户@IP "cmd"
一般若是提示命令未找到,大概原因是使用了命令的别名,如:ll 得换成 ls -l

    
- sshpass -p 123123 ssh root@$target_ip << 6eb88ebe-8a60-4a82-84c8-08536c92a73f
- cd $target_workDir
- cd ..
- rm -rf temp_$UUID
- mkdir temp_$UUID
- ls -la
- exit
- 6eb88ebe-8a60-4a82-84c8-08536c92a73f


sshpass -p 123123 scp ./${dt}.tar.gz root@192.168.1.1:/home/

sshpass -p 123123 ssh -o StrictHostKeyChecking=no root@192.168.1.1 "rm -rf /home/ds-${rmdt}.tar.gz"

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值