首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我不能在bash脚本中`source` ssh-agent和ssh-add?

在bash脚本中无法直接使用source命令来加载ssh-agent和ssh-add的原因是,source命令用于在当前shell环境中执行指定的脚本文件,而ssh-agent和ssh-add是属于交互式的命令行工具,无法直接在脚本中执行。

ssh-agent是一个用于管理SSH密钥的程序,它可以将私钥保存在内存中,并在需要时提供给SSH客户端使用。ssh-add则是用于将私钥添加到ssh-agent中的命令。

由于ssh-agent和ssh-add需要与用户进行交互,例如输入密码或确认操作,而在脚本中无法直接进行交互操作。因此,无法直接在bash脚本中使用source命令加载ssh-agent和ssh-add。

如果你希望在脚本中使用ssh-agent和ssh-add,可以考虑以下两种方法:

  1. 在脚本中直接执行ssh-agent和ssh-add命令,并提供必要的参数。例如:
代码语言:txt
复制
eval $(ssh-agent)
ssh-add /path/to/private_key

这样可以在脚本中启动ssh-agent,并将私钥添加到ssh-agent中。但需要注意的是,这种方式需要在脚本中明确指定私钥的路径,并且无法进行交互操作。

  1. 将私钥添加到ssh-agent中,并在脚本中使用已经存在的ssh-agent。例如:
代码语言:txt
复制
# 首先在命令行中执行以下命令,将私钥添加到ssh-agent中
eval $(ssh-agent)
ssh-add /path/to/private_key

# 然后在脚本中使用SSH_AUTH_SOCK环境变量来指定已经存在的ssh-agent
export SSH_AUTH_SOCK="/path/to/ssh-agent-socket"

# 在脚本中使用SSH_AUTH_SOCK来进行SSH操作
ssh user@host

这种方式需要在脚本中指定SSH_AUTH_SOCK环境变量,以告知脚本使用已经存在的ssh-agent。但需要注意的是,SSH_AUTH_SOCK环境变量的值需要根据实际情况进行设置。

总结起来,由于ssh-agent和ssh-add需要交互操作,无法直接在bash脚本中使用source命令加载。但可以通过在脚本中执行ssh-agent和ssh-add命令,或者使用已经存在的ssh-agent来实现在脚本中使用ssh-agent和ssh-add的功能。

相关搜索:为什么我不能在bash脚本中使用作业控制?我不能在ubuntu 20.04中保存bash脚本为什么我不能在bash中杀死一个进程?为什么我的脚本不能在容器中创建新元素?为什么dbms_lob.fragment_insert不能在我的脚本中工作?为什么我的JSON在使用decode时不能在PHP脚本中解码?为什么我不能在.net内核中绑定静态属性和通知?Python脚本可以在Spyder和CMD中运行,但不能在Atom或Git Bash中运行为什么我在excel中录制的excel脚本不能在power中自动执行?为什么我的js脚本不能在Magento 2类产品中运行为什么在我的例子中,$gte和$lte不能在mongoDB中工作在BASH中,我需要根据perl脚本的输出更改一些环境变量。在tcsh中,我可以使用别名eval组合。不能在bash中为什么我的post dall不能在MVC和Angular 7中获取数据为什么我不能在jpanel中添加按钮和渲染,它们是重叠的?为什么我的angular函数可以在Android和Windows中运行,但不能在iOS中运行?为什么我不能在Hadoop中getFileName和显示它的格式(Word文件名计数)?为什么我在bash脚本中收到“第10行:意外标记‘`fi’附近的语法错误”错误?在谷歌分析中,为什么我有时看不到来自推荐来源的utm_source和utm_medium?为什么我的代码不能在我的脚本中工作,而使用code开发人员控制台却运行得很好?为什么我的Linux服务器中的bash脚本不能将星号识别为具有相同前缀的所有文件?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的视频

领券