我有一个主机在机器 M1 上以用户 XXX 运行。我想以用户 YYY 在机器 M2 上运行从属设备。
我在两台机器之间有一个私钥-公钥,这样我就可以执行以下操作:
[XXX@M1]$ ssh YYY@M2
我已连接。
在 Jenkins 中,我为用户名 M2 创建了凭据,并选择了选项来自 Jenkins master ~/.ssh。但是当我尝试连接时失败:
[04/18/13 14:58:11] [SSH] Opening SSH connection to M2:22.
ERROR: Failed to authenticate as YYY with credential=c2cdc4dd-cb39-4f15-8329-033933ad5621
java.io.IOException: Publickey authentication failed.
[04/18/13 14:58:11] [SSH] Authentication failed.
hudson.AbortException: Authentication failed.
令人惊讶的是,如果我使用选项直接输入并从~/.ssh/id_dsa
复制粘贴私钥,那么它就可以工作。
我做错了什么?
最佳答案
优先顺序为:id_rsa、id_dsa、身份
因此,如果 ~/.ssh/id_rsa 存在,则需要使用 ~/.ssh/id_rsa,如果 id_rsa 丢失,则仅回退到 ~/.ssh/id_dsa。
如果您有多个 key 并且需要显式指定一个 key ,建议指定文件路径或使用复制和粘贴
关于ssh - Jenkins:使用不同的用户名通过 SSH 连接到从属设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16083796/