【问题标题】:How to take private key from "SSH Username with private key" Global Credential in Jenkis如何从 Jenkins 中的“带有私钥的 SSH 用户名”全局凭证中获取私钥
【发布时间】:2021-08-24 02:58:53
【问题描述】:

我有一个在 Jenkins(myKey) 中配置的“带有私钥的 SSH 用户名”和一个从 repo 运行 python 代码的非管道作业。

以下是一段代码:

jenkins_private_key = os.environ['myKey']

private_key = paramiko.RSAKey.from_private_key(jenkins_private_key)

在上述行中,我收到以下错误:

AttributeError: 'str' 对象没有属性 'readlines'

我的问题是:如何从凭证中以某种可读格式获取私钥,paramiko 可以让我获得“真正的”私钥?

谢谢

莱安德罗

【问题讨论】:

    标签: python jenkins private-key


    【解决方案1】:

    我也遇到过同样的问题,我改用 from_private_key_file 方法使它工作,因为当您在 Jenkins 作业中设置凭据时,密钥输入标签显示为“密钥文件变量",因此是文件方法。

    请记住,如果它有密码,您也必须将其传递给方法

    SSH_PRIVATE_KEY = os.environ['SSH_PRIVATE_KEY']
    SSH_PASSPHRASE = os.environ['SSH_PASSPHRASE']
    
    private_key = paramiko.RSAKey.from_private_key_file(SSH_PRIVATE_KEY)
    # Or if it has a passphrase
    private_key = paramiko.RSAKey.from_private_key_file(SSH_PRIVATE_KEY,
                                                        password=SSH_PASSPHRASE)
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-23
      • 2018-01-01
      • 1970-01-01
      • 2017-03-01
      • 2012-01-02
      • 1970-01-01
      相关资源
      最近更新 更多