我的编程空间,编程开发者的网络收藏夹
学习永远不晚

【linux】ssh 远程执行命令自动输入密码方式

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

【linux】ssh 远程执行命令自动输入密码方式

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。

img

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝

✨✨ 欢迎订阅本专栏 ✨✨

一.自动输入密码

场景:

由于多台机必须要登陆执行命令,需要使用密钥一台台登录,所以每次登陆机器的时候都需要手动输入域账号密码。密码太长且复杂,手动输入容易输错,故使用脚本来做这个事情,实现免输入密码登陆,工作效率大大提升!

解决方法:

  1. 使用 expect
  2. 使用 sshpass
  3. 结合 alfred 可以快速一键登录
  4. 也可以使用 electerm 进行登录

对于我自己而言的话,用的最爽的还是使用 sshpass+alfred 一键登录,先安装 sshpass,然后使用命令

sshpass -p 你的密码 ssh -A -g yourname@ip

登录到服务器,然后再执行脚本,部署自己的应用或者博客,登录服务器的命令用 alfred 的 workflow 来执行,方便快捷

后续使用 cicd 来部署,每次提交即可进行部署,不用登录到服务器即可部署.

二.sshpass 方式

1.安装 sshpass

sshpass 是一个实用工具,它提供了一种自动化 SSH 密码认证的方式。它允许你将密码作为命令行参数或通过环境变量传递给 SSH 命令,从而在非交互式方式下进行 SSH 登录。

使用 sshpass 可以方便地批量管理多台服务器,同时也可以将其用于自动化脚本或任务中,从而减少手动输入密码的繁琐。需要注意的是,使用 sshpass 可能会存在一定的安全风险,因此在使用时需要谨慎考虑。

不能使用命令安装,会报错,使用源码安装.

使用方式:

sshpass -p 'password' ssh user@host

其中 -p 参数指定密码,user@host 是要登录的目标服务器地址和用户名。使用上述命令后,sshpass 将会自动完成 SSH 登录过程,而无需手动输入密码。

除了使用命令行参数外,你也可以将密码保存在环境变量中,然后通过 $ENV_VAR 的方式引用它,例如:

export SSHPASS='password'sshpass -e ssh user@host

其中 -e 参数指示 sshpass 使用环境变量传递密码。在这种方式下,你需要事先将密码保存在 $SSHPASS 环境变量中。

需要注意的是,使用 sshpass 存在一定的安全风险,因为密码会以明文方式传递,容易被恶意程序截获。因此,在使用 sshpass 时,应尽可能避免将密码保存在脚本中,或者将其保存在安全加密的文件中。另外,如果可能的话,建议使用 SSH 公钥认证方式来代替密码认证。

2.源码下载

#源码下载https://sourceforge.net/projects/sshpass/

3.安装过程

#解压缩#安装cd sshpass-1.08#执行配置文件./configure#编译make#编译安装make install

4.验证

#查看版本sshpass -V#登录服务器sshpass -p 你的密码 ssh -A -g yourname@ip

三.expect 方式

首先我们创建以一个文本文件,命名为 proxy.expect,内容如下:

1.脚本

使用脚本一键登录服务器

#!/usr/bin/expect# 设置超时时间,单位秒set timeout 10# 主要功能是给ssh运行进程加个壳,用来传递交互指令# ssh -A 是转发密钥设置,用于有堡垒机的场景,一般情况下不需要spawn ssh -A root@120.79.36.53# 判断上次输出结果里是否包含 Password: 的字符串,如果有则立即返回,否则就等待一段时间后返回,这里等待时长就是前面设置的 10秒expect "Password:"# 发送密码 \r 表示字符串结束send "xxx.\r"# 执行完成后保持交互状态,把控制权交给控制台,这个时候就可以手工操作了。# 如果没有这一句登录完成后会退出,而不是留在远程终端上。interact

2.执行

 expect proxy.expect

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙
img

来源地址:https://blog.csdn.net/qyj19920704/article/details/128224641

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

【linux】ssh 远程执行命令自动输入密码方式

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

【linux】ssh 远程执行命令自动输入密码方式

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个
2023-08-18

shell脚本执行命令自动填充密码(自动输入密码)

目录概述一、pexpect第三方包二、参数一栏三、话不多说,上代码补充:Shell 脚本自动输入密码的三种方式方式一方式二方式三概述 日常开发过程中,经常会有一些自动化的操作受制于密码,当然,密码是安全的。常见的一些应用场景,如ssh连接服
2023-02-21

Linux下使用SSH远程执行命令方法收集

说明:可以做SSH免密登录之后执行,这样可以省去每次执行输入密码的提示。 对于简单的命令: 如果是简单执行几个命令,则: ssh user@remoteNode "cd /home ; ls" 基本能完成常用的对于远程节点的管理了,
2022-06-04

Linux 中不输入密码运行 sudo 命令的方法

sudo命令允许受信任的用户作为另一个用户运行程序,默认情况下是root用户。如果您在命令行上花费了大量时间,那么sudo将会是您一直使用的命令之一。 通常,要授予sudo访问权限,请将用户添加到sudoers文件中定义的swww.cpp
2022-06-04

编程热搜

目录