【问题标题】:Pass ssh options to ssh-copy-id将 ssh 选项传递给 ssh-copy-id
【发布时间】:2015-01-11 21:44:21
【问题描述】:

我被困在 Permission denied (publickey) 地狱中,试图将公钥复制到远程服务器,以便 Jenkins 可以在构建期间 rsync 文件。

跑步:

sudo ssh-copy-id -i id_rsa.pub ubuntu@xx.xx.xx.xx

我已经为另一台服务器执行了此操作,但是该服务器有一个由 EC2 分配的单独的 SSH 密钥对,我目前的猜测是 ssh-copy-id 试图为此连接使用错误的私钥。有没有办法将 -vv 传递给 ssh-copy-id 以便我可以看到它正在尝试使用什么jey。我查看了 -o 开关,但似乎无法正确设置。

谢谢。

【问题讨论】:

标签: ssh jenkins amazon-ec2


【解决方案1】:

这就是我所做的:

在 /etc/ssh/ssh_config 中添加了以下内容:

Host xx.xx.xx.xx
User ubuntu
IdentityFile ~/.ssh/key-name-for-that-machine.pem

然后将 key-name-for-that-machine.pem 复制到 /var/lib/jenkins/.ssh

没有再次运行 ssh-copy-id,只是让 rsync 在移动内容时使用该密钥文件,这是 rsync 脚本:

rsync -rvh -e 'ssh -v' "/tmp/project-DEV-${BUILD_ID}/" ubuntu@xx.xx.xx.xx:"/www/www.project-dir.net/"

【讨论】:

    【解决方案2】:

    我的猜测是在没有 sudo 的情况下运行它。但这取决于您通常如何登录服务器。

    • 如果您通常使用 ssh ubuntu@xx.xx.xx.xx 登录,则会丢失 须藤。
    • 如果不是尝试使用 sudo ssh ubuntu@xx.xx.xx.xx 登录

    阅读您的问题,其中至少有一个应该失败。

    【讨论】:

    • 好的,到了某个地方,使用 sudo 它会在 /root 中查找密钥,但无法通过 SSH。问题一定是它尝试使用 SSH 的密钥,但我不知道如何告诉它在连接时使用哪一个。
    • 它会自动在你的 ~/.ssh/id_rsa 文件中查找。
    • 是的,问题是我有一个单独的 EC2 密钥用于该机器,我该如何解决?我不敢相信我没有第一次记录这个!
    猜你喜欢
    • 2011-12-08
    • 1970-01-01
    • 1970-01-01
    • 2013-03-28
    • 2020-12-20
    • 1970-01-01
    • 2020-01-20
    • 1970-01-01
    • 2018-06-30
    相关资源
    最近更新 更多