前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >免交互SSH登录工具sshpass

免交互SSH登录工具sshpass

作者头像
yuanfan2012
发布2019-05-30 19:04:00
2.9K0
发布2019-05-30 19:04:00
举报
文章被收录于专栏:WalkingCloudWalkingCloud

使用 SSH 登录到远程 Linux 服务器时,一般默认状态下,会出现交互提示要求手动输入密码。当需要将ssh、scp等命令做成自动化脚本时,由于需要人工参与,在脚本中进行自动化的 ssh 远程连接就不可能实现了,sshpass的出现,解决了这一问题。sshpass用于非交互式SSH的密码验证,一般用在sh脚本中,无须再次输入密码。

下面逐一介绍sshpass的安装与使用方法

1、yum install -y sshpass安装sshpass工具

[root@CentOS_VM ~]# yum install -y sshpass

可能需要先安装EPEL后再安装sshpass yum install epel-release

2、使用-h可查看sshpass的用法

3、使用举例

1) ssh -p 指定密码文本字符串

sshpass -p password ssh -p 8122 root@XX.XX.XX.XX

password为远程服务器的密码

XX.XX.XX.XX为远程服务器的IP地址

2、ssh -f 指定密码文件

[root@CentOS_VM ~]# vi password.db

[root@CentOS_VM ~]# sshpass -f password.db ssh -p 8122 root@XX.XX.XX.XX

3、以上两种方式在命令行或者文件中显示了密码,相当不安全

防止在屏幕上显示密码,可以使用 -e 参数,并将密码作为SSHPASS环境变量的值输入

export SSHPASS=password

echo $SSHPASS

sshpass -e ssh -p 8122 root@XX.XX.XX.XX

4、sshpass+scp传输文件

sshpass -e scp -P 8122 ./password.db root@XX.XX.XX.XX:~/

Tips:由于是首次登录可能需要RSA key指纹验证

可以加-o StrictHostKeychecking=no选项来忽略key检查信息

sshpass -e scp -P 8122 -o StrictHostKeychecking=no ./speedtest.py root@XX.XX.XX:/

总结:虽然这个sshpass工具很高效,可以免输入密码,但基于安全考虑强烈建议使用更安全的 ssh 公钥认证机制

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 WalkingCloud 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档