scp ssh自动填入密码

本文介绍如何使用sshpass和expect实现SCP与SSH操作时自动输入密码的方法,适用于自动化脚本中需要安全传输文件的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

scp和ssh方便好用而且安全,也许是为了更安全所以默认不会提供密码传参。

但如果你像我一样需要在运行脚本中自动填入scp或ssh的密码可以采用下面两种方法

第一种比较简单,直接使用sshpass命令传递密码

sshpass -p "your password" scp ./abc.txt hostname/abc.txt

第二种可以用expect

#!/usr/bin/expect

set timeout 30

spawn /bin/bash
expect -re "#|$"
send "rsync -e 'ssh ' -avzc youname@server_address:/mydata/game_log/ /data/log/\r"
expect {
<span style="white-space:pre">	</span>"password" { send "YOU_PASSWORD\r" }
<span style="white-space:pre">	</span>"yes/no" { send "yes\r"; exp_continue; }
}

expect -re "total size is"
expect -re "#|$"
send "exit\r"


其实可以看出expect是一个更灵活的设计,他其实是脱胎于tcl语言,也就是说你需要安装expect才能使用,这里注意脚本的第一行

#!/usr/bin/expect -f

这里就是告诉shell由expect来执行这个脚本,spawn命令则是与expect交互的shell命令。而在后面你可以通过expect来将交互命令中输出作为输入条件(这里的expect可不是shell里的而是expect中的expect),如果带-re表示采用正则。之后可以用send或exp_send对交互命令输入。总之你可以用这做出非常有意思的功能。


这样就OK了,祝你好运


在利用Jenkins实现自动化部署的过程中,涉及多个关键环节,包括源码管理、构建触发器设置、以及服务器部署等。下面是一个详细的流程,结合Git源码管理和SSH密码登录,以帮助你理解如何搭建一个完整的自动化部署系统: 参考资源链接:[基于Jenkins的自动化部署流程搭建和实现](https://wenku.youkuaiyun.com/doc/646eb2d8d12cbe7ec3f087af?spm=1055.2569.3001.10343) 一、环境准备 在开始之前,确保已经安装并运行Jenkins,并且安装了必要的插件,如Git插件、SSH插件等。同时需要配置好Git服务器和SSH服务器。 二、源码管理配置 1. 在Jenkins中创建一个新项目,并选择&#39;构建一个自由风格的软件项目&#39;。 2. 在源码管理选项中,选择&#39;Git&#39;,并将你的项目仓库地址填入&#39;Repository URL&#39;字段。 3. 添加凭据,使用你的Git服务账号进行认证。 三、SSH密码登陆配置 1. 在目标部署服务器上生成SSH密钥对,无需设置密码。 2. 将生成的公钥内容添加到Jenkins服务器的`~/.ssh/authorized_keys`文件中,确保Jenkins服务器可以无密码SSH登陆到目标服务器。 四、构建触发器设置 1. 设置构建触发器,可以选择&#39;Poll SCM&#39;以定时检查源码变化,或&#39;Build when a change is pushed to Git&#39;以响应Git仓库的推送事件。 2. 在&#39;Build Triggers&#39;选项中,设置合适的定时规则或配置Webhook以便实时触发构建。 五、构建配置 1. 在&#39;Build&#39;步骤中,添加执行Shell的构建步骤,编写编译源码的脚本。 2. 在编译完成后,添加步骤以将编译好的软件包传输到部署服务器,例如使用scp命令。 六、部署执行 1. 在部署服务器上编写部署脚本,比如`deploy.sh`,在该脚本中编写部署软件包到指定目录并执行部署逻辑的命令。 2. 在Jenkins项目配置的&#39;Post Build Actions&#39;中,添加&#39;Execute Shell&#39;步骤,调用`deploy.sh`脚本执行实际的部署动作。 通过上述步骤,你可以搭建一个从源码编译到自动部署的完整Jenkins自动化部署流程。这样,每次源码更新或按计划触发时,Jenkins就会自动执行这些步骤,完成从编译到部署的全过程。 要深入了解Jenkins自动化部署流程的更多细节和高级配置,可以参考以下资源:《基于Jenkins的自动化部署流程搭建和实现》。该资料详细介绍了Jenkins的自动化部署流程搭建的步骤和关键点,非常适合希望提升自动化部署能力的技术人员阅读和实践。 参考资源链接:[基于Jenkins的自动化部署流程搭建和实现](https://wenku.youkuaiyun.com/doc/646eb2d8d12cbe7ec3f087af?spm=1055.2569.3001.10343)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值