ssh 代理在 cron 作业内转发

2024-01-01

我想知道为什么 ssh 代理转发在 cron 作业中不起作用。我有一个简单的脚本,例如:

ssh -A remote_host "ls ~"

我可以运行这个脚本而无需输入任何密码,但是将其放入 cron 作业后,它总是失败:

Permission denied, please try again.

Received disconnect from ip_of_remote_host: 2: Too many authentication failures for myuser

谁能告诉我如何解决这个问题?

多谢!


当你启动 ssh-agent 时,你需要将 SSH_AGENT_PID 或 SSH_AUTH_SOCK 存储在 env 文件中,并在你的 ssh 脚本中获取它,

这是我很久以前从网上抓取的一个脚本。

SSH_ENV=$HOME/.ssh/environment
function start_agent {
     echo "Initialising new SSH agent..."
     /usr/bin/ssh-agent | sed 's/^echo/#echo/' > ${SSH_ENV}
     echo succeeded
     chmod 600 ${SSH_ENV}
     . ${SSH_ENV} > /dev/null
     ssh-add id_rsa
}
if [ -f "${SSH_ENV}" ]; then
     . ${SSH_ENV} > /dev/null
     ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
         start_agent;
     }
else
     start_agent;
fi

如果密钥受密码保护,请手动运行它,它将存储在 $HOME/.ssh/environment 中,例如

SSH_AUTH_SOCK=/tmp/ssh-KldGwK6643/agent.6643; export SSH_AUTH_SOCK;
SSH_AGENT_PID=6644; export SSH_AGENT_PID;

在你的 crontab 中 。 $HOME/.ssh/environment && ssh -A blabla

如果您的服务器重新启动,您需要再次手动运行 start_agent scrit

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ssh 代理在 cron 作业内转发 的相关文章

  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • linux-x64 二进制文件无法在 linuxmusl-x64 平台上使用错误

    我正在安装Sharp用于使用 package json 的 Nodejs 项目的 docker 映像上的映像压缩包 当我创建容器时 我收到有关 Sharp 包的以下错误 app node modules sharp lib libvips
  • 如何在linux中以编程方式获取dir的大小?

    我想通过 C 程序获取 linux 中特定目录的确切大小 我尝试使用 statfs path struct statfs 但它没有给出确切的大小 我也尝试过 stat 但它返回任何目录的大小为 4096 请建议我如何获取 dir 的确切大小
  • 从 ttyUSB0 写入和读取,无法得到响应

    我对 Linux tty 不太有经验 我的环境是带有丰富 USB 串行的 Raspbian 什么有效 stty F dev ttyUSB0 38400 cu l dev ttyUSB0 s 38400 cu to dev ttyUSB0作品
  • 无需超级用户即可在 Linux 中打开 RAW 套接字

    我必须编写一个在 Linux 上运行的 ping 函数 语言是 C 所以 C 也可以 在网上搜索并查看源代码ping命令 事实证明我应该创建一个原始套接字 icmp sock socket AF INET SOCK RAW IPPROTO
  • C 语言的符号表

    我目前正在开发一种执行模式匹配的静态分析工具 我在用Flex https github com westes flex生成词法分析器 我编写了代码来管理符号表 我不太有经验C 所以我决定将符号表实现为线性链表 include
  • 使用非规范地址检索内存数据会导致 SIGSEGV 而不是 SIGBUS

    我无法使用以下汇编代码产生 总线错误 这里我使用的内存地址不是合法的 规范地址 那么 我怎样才能触发该错误呢 我在带有 NASM 2 14 02 的 Ubuntu 20 04 LTS 下运行这段代码 但它会导致负载出现 SIGSEGV 分段
  • 添加文件时运行 shell 命令

    我的 Linux 机器上有一个名为 images 的文件夹 该文件夹连接到一个网站 该网站的管理员可以向该网站添加图片 但是 当添加图片时 我想要一个命令来运行调整目录中所有图片的大小 简而言之 我想知道当新文件添加到特定位置时如何使服务器
  • CMake 链接 glfw3 lib 错误

    我正在使用 CLion 并且正在使用 glfw3 库编写一个程序 http www glfw org docs latest http www glfw org docs latest 我安装并正确执行了库中的所有操作 我有 a 和 h 文
  • 使用 shell 脚本将行附加到 /etc/hosts 文件

    我有一个新的 Ubuntu 12 04 VPS 我正在尝试编写一个安装脚本来完成整个 LAMP 安装 我遇到问题的地方是在 etc hosts文件 我当前的主机文件如下所示 127 0 0 1 localhost Venus The fol
  • 在 Mono 上运行 .Net MVC5 应用程序

    我正在 Windows 上的 Visual Studio 2013 中开发 Net 4 5 1 MVC5 应用程序 现在我想知道 是否可以在Linux Ubuntu 12 04 上运行这个应用程序 可以使用OWIN吗 Owin 可以自托管运
  • Intel 上的 gcc 中的 _mm_pause 用法

    我参考过这个网页 https software intel com en us articles benefitting power and performance sleep loops https software intel com
  • 如何在 Google Compute Engine 上创建的两个实例之间进行 ssh?

    我在 Google Compute Engine 上创建了两个实例 Instance A hostname robot a ip addr 10 111 0 11 Instance B hostname robot b ip addr 10
  • 使用 python 脚本更改 shell 中的工作目录

    我想实现一个用户态命令 它将采用其参数之一 路径 并将目录更改为该目录 程序完成后 我希望 shell 位于该目录中 所以我想实施cd命令 但需要外部程序 可以在 python 脚本中完成还是我必须编写 bash 包装器 Example t
  • 在生产服务器上使用 Subversion 使文件生效的最佳方法是什么?

    目前我已经设置了 subversion 这样当我在 Eclipse PDT 中进行更改时 我可以提交更改 它们将保存在 home administrator 中项目文件 该文件具有 subversion 推荐的 branches tags
  • Linux 为一组进程保留一个处理器(动态)

    有没有办法将处理器排除在正常调度之外 也就是说 使用sched setaffinity我可以指示线程应该在哪个处理器上运行 但我正在寻找相反的情况 也就是说 我想从正常调度中排除给定的处理器 以便只有已明确调度的进程才能在那里运行 我还知道
  • 如何检查主机是否在您的known_host ssh中

    我的脚本中使用以下命令 将主机添加到 ssh 中的已知主机 VAR2 expect c spawn ssh o StrictHostKeyChecking no REMOTE HOST USER REMOTE HOST IP expect
  • 使用自定义堆的类似 malloc 的函数

    如果我希望使用自定义预分配堆构造类似 malloc 的功能 那么 C 中最好的方法是什么 我的具体问题是 我有一个可映射 类似内存 的设备 已将其放入我的地址空间中 但我需要获得一种更灵活的方式来使用该内存来存储将随着时间的推移分配和释放的
  • 为什么 XRecordDisableContext() 不起作用?

    void Callback XPointer XRecordInterceptData pRecord std cout lt lt my logs n int main if auto const pDisplay XOpenDispla
  • [A-Z] 表示 [A-Za-z] 是怎么回事?

    我已经注意到 至少在我使用的一些基于 Unix 的系统上 ls A Z 已经给了我预期的结果ls A Za z 让我无法轻松获得以大写字母开头的该死的文件列表 我刚刚遇到了同样的事情grep 我无法让它停止与小写字母匹配 A Z 直到我最终

随机推荐

  • 按下“Ctrl + C”按钮处理 C# 控制台应用程序

    如何处理同时按下的两个按钮 Ctrl C 不是在 WindowsForms 应用程序中 而是在控制台 C 应用程序中 我怀疑你想设置Console TreatCtrlCAsInput http msdn microsoft com en u
  • UIBarButton 没有改变

    IBOutlet weak var playStopButton UIBarButtonItem var playStopArray UIBarButtonSystemItem Pause UIBarButtonSystemItem Pla
  • pandas udf showString 简单示例错误

    我开始在使用此 身份 pandas udf 在 EMR 集群上运行的 Pyspark Jupyter 笔记本上使用 pandas udf 并且收到以下错误 pandas udf df schema PandasUDFType GROUPED
  • 批量将文件从子文件夹移动到父文件夹

    这是我的场景 这是我的文件夹结构 C DOCS Project1 docname1 image jpg docname2 image jpg docname3 image jpg C DOCS Project2 docname1 image
  • 什么样的面试问题适合 C++ 手机屏幕?

    很想了解人们的想法 我经常进行采访 在我的职业生涯中已经有足够多的时间来反思这些采访 并且我注意到了各种各样的问题 我专门做了这个 C 但值得注意的是 有人通过电话问我算法复杂性问题 我什至不是指哈希查找与二叉树的复杂性 我的意思更像是分析
  • 在 Oracle SQL / PL-SQL 中将德语特殊字符转换为英语等效字符

    我想将表的一列中的所有德语字符替换为相应的英语字符 当我尝试使用 Replace 函数时 它没有返回丰硕的结果 我想将所有德语特殊字符替换为 Ae Oe Ue oe ae ue ss 请让我知道如何执行 我需要更改任何数据库设置吗 请在下面
  • Python 3.4 解码字节

    我正在尝试用 python 编写一个文件 并且在编写文件之前找不到解码字节对象的方法 基本上 我正在尝试解码这个字节字符串 Les xc3 x83 xc2 xa9vad xc3 x83 xc2 xa9s 这是我试图恢复的原始文本 Les v
  • 使用 .net core 为 NLog 注入服务的自定义目标

    我正在使用 NLogNLog Extensions Logging用于 aps net 核心支持 我需要创建一个自定义目标并将服务注入到目标的构造函数中 以下代码永远不会被执行 public MyTarget IService servic
  • 在前台服务中运行网络代码后仍然收到“网络使用过多(后台)”警告

    通过参考处理和解决 网络使用过多 后台 的正确方法 https stackoverflow com questions 54489501 proper way to tackle and resolve excessive network
  • 最短路径图算法助力Boost

    我有一个矩形网格形状的 DAG 其中水平边缘始终指向右侧 垂直边缘始终指向下方 边缘具有与之相关的正成本 由于矩形格式 节点使用从零开始的行 列来引用 这是一个示例图 现在 我想进行搜索 起始顶点将始终位于左列 索引为 0 的列 和图的上半
  • 在链接上切换活动课程

    给定一个在两个类之间切换的脚本 我还向当前选定的链接添加一个活动状态 以设置下划线来显示活动状态 但是 当连续单击链接时 它会不断添加活动类 而不是打开和关闭该类 如何在单击链接时显示活动状态 并在单击另一个链接时关闭并应用于另一个链接 J
  • Excel 文件的 Oledb 连接字符串

    这是我在加载 excel 2003 文件时使用的 oledb 连接字符串 但我收到错误消息 无法找到可安装的 ISAM 请帮助我解决这个问题 我在这里做错了什么 Provider Microsoft Jet OLEDB 4 0 Data S
  • 订阅 DTE 事件似乎不起作用 - 事件不会被调用

    我在包内进行了扩展 并调用以下代码 当用户按下工具栏中的按钮时发生 DocumentEvents documentEvents DTE2 GetService typeof DTE dte Events DebuggerEvents OnE
  • FOS Js 路由包无法识别路由

    我正在尝试使用FOSJsRoutingBundle从 symfony 路由生成 url 我遵循doc https github com FriendsOfSymfony FOSJsRoutingBundle blob master Reso
  • 从另一个 Fragment 更新 ViewPager 中的 TextView

    我正在尝试单击另一个片段上的按钮来更新片段中的 TextView 实际上 我对 Activity 实现了回调函数 并且它确实有效 因为 Logcat 报告 TextView 中的文本已更改 问题是第一个片段中显示的 Textview 没有更
  • Spark.sql 或 df.filter("").select("") 哪个更快。使用斯卡拉

    我有一个 df 表 它还有一个使用创建的视图 table createOrReplaceTempView table 查询是 spark sql SELECT column1 from TABLE where column2 VALUE 我
  • 如何在 Spring Boot 中将 yaml 列表绑定到 java 列表?

    我的 yml 文件中有一个列表 我需要将其绑定到我的 java springboot 应用程序中 我该如何处理 fruits Apple Bannana 理想情况下我想要类似的东西 Value filters siteID List sit
  • 如何使用 postgresql 安装 wordpress

    我是 wordpress 的新手 我刚刚安装了wordpress 4 2 2 我想在heroku 上使用postgresql 安装wordpress 在此之前 我尝试在本地主机上安装带有 postgresql 的 wordpress 我遵循
  • 如何在 Dojo 中迭代对象(关联数组)?

    Dojo有类似jQuery的方法吗each 这允许你传递一个对象来迭代 jQuery each 允许您传递数组或对象 在后一种情况下 回调函数同时接收键和值 有什么东西可以让你在 Dojo 中做到这一点吗 看起来您正在寻找dojox lan
  • ssh 代理在 cron 作业内转发

    我想知道为什么 ssh 代理转发在 cron 作业中不起作用 我有一个简单的脚本 例如 ssh A remote host ls 我可以运行这个脚本而无需输入任何密码 但是将其放入 cron 作业后 它总是失败 Permission den