【问题标题】:How to inject ssh options to pip install git+ssh如何将 ssh 选项注入 pip install git+ssh
【发布时间】:2016-12-15 07:04:30
【问题描述】:

我有一个新配置的 AWS 实例。我正在尝试使用 pip install git+ssh syntax 使用 ansible 安装应用程序。但是,ansible 挂起。经过进一步调查,ansible 挂起是因为:

The authenticity of host 'github.com (192.30.253.113)' can't be established. RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48. Are you sure you want to continue connecting (yes/no)?

所以我的问题是,如何将-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no 之类的ssh 选项注入到pip 命令中?

还将考虑替代解决方案。

【问题讨论】:

  • 你可能想用谷歌搜索ssh-keyscan -t rsa github.com

标签: git amazon-web-services ssh pip ansible


【解决方案1】:

您可以通过ssh-keyscan获取指纹并自行放入known_hosts文件中。

ssh-keyscan -t rsa github.com >>~/.ssh/known_hosts

这样 ssh 已经对密钥感到满意了,您不必每次都记住添加选项。

但是,如果您宁愿忽略任何与指纹相关的内容,那么如果您在 ~/.ssh/configgithub.com 主机下添加该选项(或一般情况下,但这似乎风险更大),它也应该可以工作

Host github.com
    StrictHostKeyChecking no

【讨论】:

  • 是的,我最终做了第一个,但在服务器上使用了全局 ssh 配置。
  • 这是有道理的。该行来自 Travis 测试文件,因此我们只关心具体的运行。
【解决方案2】:

您可以使用 Ansible known_hosts 模块来代替ssh-keyscan

- name: Tell the host about our servers it might want to ssh to
  known_hosts:
    path: '/{{ ansible_env.USER }}/.ssh/known_hosts'
    name: 'github.com'
    key: "{{ lookup('pipe', 'ssh-keyscan -t rsa github.com') }}"

您也可以在系统范围内添加它:/etc/ssh/ssh_known_hosts

希望对你有帮助

【讨论】:

  • 是的,太好了!
  • 路径应该是path: '/{{ ansible_env.USER }}/.ssh/known_hosts',不带ssh前缀
猜你喜欢
  • 1970-01-01
  • 2019-03-14
  • 2011-12-08
  • 2021-03-02
  • 2015-01-11
  • 1970-01-01
  • 2021-12-26
  • 2016-03-25
  • 1970-01-01
相关资源
最近更新 更多