linux - 无法在 Linux 中使用自动化脚本连接到 ssh-agent
问题描述
我正在尝试编写一个脚本来自动化一个rclone
需要通过公钥和私钥密码进行 ssh 身份验证的过程。默认情况下,身份验证服务不会在新会话中运行。手动我可以
$ eval `ssh-agent`
Agent pid 2335
$ ssh-add
Enter passphrase for /home/user/.ssh/private_key:
Identity added: /home/user/.ssh/private_key (/home/user/.ssh/private_key)
然后我运行这个rclone
过程。但是,如果我运行脚本,让我们调用它auth
#!/bin/bash
eval `ssh-agent`
/path/to/scpw
哪里scpw
是expect
自动输入密码的脚本ssh-add
,然后我得到与手动输入相同的输出:
$ /path/to/auth
Agent pid 2335
Enter passphrase for /home/user/.ssh/private_key:
Identity added: /home/user/.ssh/private_key (/home/user/.ssh/private_key)
但是当我现在尝试运行该rclone
过程时,我收到了错误消息
yyyy/mm/dd hh:mm:ss Failed to create file system for "computer:directory": couldn't
connect to ssh-agent: SSH agent requested but SSH_AUTH_SOCK not-specified
如果我根本没有运行,这与我收到的错误消息相同ssh-add
。我尝试了几种变体,例如
eval `ssh-agent` && ssh-add
eval `ssh-agent` && sleep 3 && ssh-add`
eval `ssh-agent` && /path/to/scpw (where scpw waits 3 seconds to enter passphrase)
所有这些也可以手动工作,但不能在脚本中工作。我很困惑。
解决方案
推荐阅读
- django - Cloudinary 在 Django 中显示不正确的 url
- html - 如何在 ASP.NET MVC 中定义搜索过程的路由?
- c++ - 高效地将复杂数据插入 RocksDB
- c# - 在 WPF 中以高帧率绘制位图
- python - 无法从表中刮取所有 ul 标签
- cypress - Windows PC 中赛普拉斯的问题
- python - 无法使用 selenium python 打印 foodpanda 产品链接
- 3d - GnuPlot:热图的数据格式?
- ios - flutter build ios,xcode build的错误输出
- java - 如何在具有私有构造函数的类中使用 @Value 或 autowire Environment?