sshpass非交互ssh密码验证登录

一、sshpass:用于非交互的ssh 密码验证

sshpass 是一个简单、轻量级的命令行工具,通过它我们能够向命令提示符本身提供密码(非交互式密码验证),这样就可以通过 cron调度器执行自动化的 shell 脚本进行备份。

参数:

-f filename:从文件中获取密码

-d number:使用数字作为获取密码的文件描述符

-p password:指定明文本密码输入(安全性较差)

-e 从环境变量SSHPASS获取密码

1、安装sshpass:

yum install -y sshpass  

2、远程ssh连接主机

2.1直接远程连接某主机

sshpass -p {密码} ssh {用户名}@{主机IP}

2.2远程连接指定ssh的端口

sshpass -p {密码} ssh -p {端口} {用户名}@{主机IP}

2.3 从密码文件读取文件内容作为密码去远程连接主机

sshpass -f {密码文本文件} ssh {用户名}@{主机IP}

2.4远程连接主机并执行命令

sshpass -p {密码} ssh -o StrictHostKeyChecking=no {用户名}@{主机IP} 'rm -rf /tmp/test'

-o StrictHostKeyChecking=no 忽略密码提示

3、远程主机本地文件互传

3.1从远程主机上拉取文件到本地

sshpass -p {密码} scp {用户名}@{主机IP}:{远程主机目录} {本地主机目录}

2.2从指定端口远程主机上拉取文件到本地

sshpass -p {密码} scp -P {端口} {用户名}@{主机IP}:{远程主机目录} {本地主机目录}

3.3从本地传文件到远程主机

sshpass -p {密码} scp {本地主机文件} {用户名}@{主机IP}:{远程主机目录}

3.4 将主机目录文件拷贝至远程主机目录

sshpass -p {密码} scp -r {本地主机目录} {用户名}@{主机IP}:{远程主机目录}

二、操作实例如下

1从命令行方式传递密码

sshpass -p user_password ssh user_name@192.168.1.2  【登录远程机器】

sshpass -p user_password scp -P 1222 root@192.168.1.2:/home/test  ./ 【远程机器/home/test 复制到本机当前目录】还可以在scp后加参数 -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

  1. 远程连接时不提示是否输入yes/no

【-o StrictHostKeyChecking=no 表示远程连接时不提示是否输入yes/no】

sshpass -p user_password ssh -o StrictHostKeyChecking=no user_name@192.168.1.2

5、使用sshpass远程主机,执行shell命令

程执行命令:touch /opt/file.txt,[注:shell命令要和sshpass命令写在一行]。

sshpass -p user_password ssh -o StrictHostKeyChecking=no user_name@192.168.1.2 touch /opt/file.txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码哝小鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值