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 作业内转发 的相关文章

  • 如何以编程方式启动 ssh 服务器 android,以及如何获取连接到设备的用户名和密码

    我正在开发像这样的应用程序sshdroid 我想在 Android 操作系统上打开 ssh 连接 并且我想从电脑连接应用程序 我使用了 JSCH lib 但是这个lib用于将android连接到pc 我的要求是pc到android 任何人都
  • 如何确保应用程序在 Linux 上持续运行

    我试图确保脚本在开发服务器上保持运行 它会整理统计数据并提供网络服务 因此它应该会持续存在 但一天中有几次 它会因未知原因而消失 当我们注意到时 我们只需再次启动它 但这很麻烦 并且某些用户没有权限 或专有技术 来启动它 作为一名程序员 我
  • Linux 上的用户空间能否实现本机代码的抢占式多任务处理?

    我想知道是否可以在 Linux 用户空间的单个进程中实现本机代码的抢占式多任务处理 也就是说 从外部暂停一些正在运行的本机代码 保存上下文 交换到不同的上下文 然后恢复执行 所有这些都由用户空间精心安排 但使用可能进入内核的调用 我认为这可
  • 删除 Git 存储库,但保留所有文件

    在我使用 Linux 的过程中的某个时刻 我决定将我的主目录中的所有内容都放入源代码管理中是个好主意 我不是在问这是否是一个好主意 我是在问如何撤销它 删除存储库的原因是我最近安装了 Oh My Zsh 而且我非常喜欢它 问题是我的主目录有
  • waitpid() 的作用是什么?

    有什么用waitpid 它通常用于等待特定进程完成 或者如果您使用特殊标志则更改状态 基于其进程 ID 也称为pid 它还可用于等待一组子进程中的任何一个 无论是来自特定进程组的子进程还是当前进程的任何子进程 See here http l
  • Linux:如何设置进程的时区?

    我需要设置在 Linux 机器上启动的各个进程的时区 我尝试设置TZ变量 在本地上下文中 但它不起作用 有没有一种方法可以使用与系统日期不同的系统日期从命令行运行应用程序 这可能听起来很愚蠢 但我需要一种sandbox系统日期将被更改的地方
  • 我如何知道 C 程序的可执行文件是在前台还是后台运行?

    在我的 C 程序中 我想知道我的可执行文件是否像这样在前台运行 a out 或者像这样 a out 如果你是前台工作 getpgrp tcgetpgrp STDOUT FILENO or STDIN FILENO or STDERR FIL
  • 进程退出后 POSIX 名称信号量不会释放

    我正在尝试使用 POSIX 命名信号量进行跨进程同步 我注意到进程死亡或退出后 信号量仍然被系统打开 在进程 打开它 死亡或退出后是否有办法使其关闭 释放 早期的讨论在这里 当将信号量递减至零的进程崩溃时 如何恢复信号量 https sta
  • 快速像素绘图库

    我的应用程序以每像素的方式生成 动画 因此我需要有效地绘制它们 我尝试过不同的策略 库 但结果并不令人满意 尤其是在更高分辨率的情况下 这是我尝试过的 SDL 好的 但是慢 OpenGL 像素操作效率低下 xlib 更好 但仍然太慢 svg
  • 如何在c linux中收听特定接口上的广播?

    我目前可以通过执行以下操作来收听我编写的简单广播服务器 仅广播 hello int fd socket PF INET SOCK DGRAM 0 struct sockaddr in addr memset addr 0 sizeof ad
  • C++ Boost ASIO 简单的周期性定时器?

    我想要一个非常简单的周期性计时器每 50 毫秒调用我的代码 我可以创建一个始终休眠 50 毫秒的线程 但这很痛苦 我可以开始研究用于制作计时器的 Linux API 但它不可移植 I d like使用升压 我只是不确定这是否可能 boost
  • NUMA 在虚拟内存中是如何表示的?

    有许多资源 https en wikipedia org wiki Non uniform memory access从硬件角度描述NUMA的架构性能影响 http practical tech com infrastructure num
  • Windows CE 与嵌入式 Linux [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 现在我确信我们都清楚 Linux 与 Windows 桌面的相对优点 然而 我对嵌入式开发世界的了解却少得多 我主要对行业解决方案感兴
  • 无法连接到 EC2 - ssh:连接到主机端口 22:连接被拒绝

    我目前在海外 尝试通过 ssh 连接到我的 EC2 实例 但收到错误ssh connect to host ec2 34 207 64 42 compute 1 amazonaws com port 22 Connection refuse
  • PyQt5 - 无法使用 QVideoWidget 播放视频

    from PyQt5 QtWidgets import from PyQt5 QtMultimedia import from PyQt5 QtMultimediaWidgets import from PyQt5 QtCore impor
  • Capistrano 3 部署无法连接到 GitHub - 权限被拒绝(公钥)

    我使用 Capistrano v3 和 capistrano symfony gem 设置了以下部署脚本 我正在使用 Ubuntu 14 4 部署到 AWS EC2 实例 我正在连接从 AWS 下载的 pem 文件 我的deploy rb中
  • 每个命令都返回“bash:<命令>:找不到命令...”[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我刚刚安装了 Scala 并添加了路径gedit bashrc export SCALA HOME home avijit sca
  • Gearman,php 扩展问题:使用终端在 .. 中找不到类“GearmanWorker”,但可以在浏览器上使用

    我最近在 ubuntu 10 04 上安装了 gearman 并安装了它的 pecl 扩展 现在 当我在浏览器中运行一个 php 文件时 其中包含 client new GearmanWorker die var Dump client I
  • Linux 上的 RTLD_LOCAL 和dynamic_cast

    我们有一个由应用程序中的一些共享库构成的插件 我们需要在应用程序运行时更新它 出于性能原因 我们在卸载旧插件之前加载并开始使用新插件 并且只有当所有线程都使用旧插件完成后 我们才卸载它 由于新插件和旧插件的库具有相同的符号 我们dlopen
  • 让 TeXstudio 在 linux mint 中工作:找不到文件“url.sty”。

    刚刚切换到 Linux Mint 以前的顽固 Windows 用户 我在尝试安装 TeXstudio 时遇到一些问题 Sudo apt get install texstudio 给了我一个正确的安装 至少 我是这么认为的 但是当我尝试构建

随机推荐

  • 按下“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