ubuntu - 当我在本地运行命令时未加载 ssh-agent

标签 ubuntu ssh ubuntu-18.04

我想将应用程序从我的 Mac 部署到我的 ubutun 18.04 服务器。问题是当我去我的服务器并执行一个简单的命令时,比如 ssh -T git@bitbucket.org 一切正常。它不问我的密码等...
但是当我运行命令时

ssh deploy@ipofmyserver 'ssh -T git@bitbucket.org'
我有这个错误:

git@bitbucket.org: Permission denied (publickey).


我的 ssh key 已生成并在我的 bitbucket 帐户中得到很好的通知。
我注意到当我连接 ssh deploy@... 时,用户代理没有启动。当我运行命令时
ssh deploy@... 'eval `ssh-agent -s` && ssh-add && ssh -T git@bitbucket.org'
它询问我的密码,我得到了可以连接的响应。
我尝试使用此解决方案来使用已运行的用户代理:https://github.com/wwalker/ssh-find-agent但它不起作用。
有什么解决办法吗?

最佳答案

I try to use this solution to use a user-agent already running : https://github.com/wwalker/ssh-find-agent but it doesn't work.


如果如文档所述,您尝试使用 . ssh-find-agent.sh~/.bashrc~./.zshrc ,那是行不通的。
您的问题的核心(ssh 内的 ssh)是 [ssh session 将显示为:
  • ~/.bash_profile 在交互式 session 中(不是 .bashrc)
  • 非交互式 session 中没有任何内容(ssh user@server 'a command')

  • 你至少应该采购你的.bash ( rc_profile )触发 . ssh-find-agent.sh并查看它是否找到您的 ssh 代理(已在运行,已输入密码)
    如果您必须输入密码,您可能需要 expect end of this answer 所示.
    OP jean-max确认in the comments采购.profile (不是 .bash_profile )足以使 . ssh-find-agent.sh工作。

    chepner提到 in the comments ssh -J "jump host" option ,这里是动态的:
    ssh -J deploy@ipfmyserver git@bitbucket.org 
    

    关于ubuntu - 当我在本地运行命令时未加载 ssh-agent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63425668/

    相关文章:

    php - 升级到 Ubuntu 14.10 后 PHP/Nginx 设置出现问题

    linux - 如何在ubuntu终端中获取一天中的星期几

    php - 使用SSH别名中的条目到PHP脚本中

    ssh - 在不发送私钥的情况下配置远程 nixos 盒

    c++ - 为 arm : c++: error: unrecognized command line option ‘-mthumb’ ; did you mean ‘-mtbm’ ? 交叉编译 opencv

    python - 确保 Android SDK 的路径正确

    java - Ubuntu 无法启动另一个 Java 线程

    ssh - list 中某些主机的身份验证或权限失败

    java.lang.ClassNotFoundException 太阳.misc.GC

    ruby - LoadError : cannot load such file -- gherkin/formatter/json_formatter , 运行命令 rackup,ruby 版本 2.2.0 和 cucumber 2.1.0