Fabric/python。 运行 使用本地 sshkey 的远程命令

Fabric/python. Run remote command with local sshkey

我正在尝试自动化部署过程。 我的项目在 mercurial repo 中。 我有一台本地机器 LOCAL,用户 LOCAL_USER 和 ssh-key (~/.ssh/KEY_LOCAL)。我还有远程服务器 REMOTE,用户 REMOTE_USER 和 ssh-key ('~/.ssh/KEY_REMOTE').

env.hosts = ['REMOTE']
env.user = 'REMOTE_USER'

def pull():
    with cd(repo_path):
        run('hg pull -u')

我可以连接到 REMOTE 服务器,但是 hg 试图使用 REMOTE_USER

是否可以在 REMOTE SERVERLOCAL_USER + SSH_KEY_LOCAL 上使用 hg?

REMOTE 服务器上的 Mercurial 无法访问 LOCAL 上的 ssh 密钥。虽然可能有一些方法可以即时复制它,或者做一些奇怪的安装,但我不建议这样做。

您应该做的是在 REMOTE 服务器上创建一个不同的私钥,然后将它的 public 密钥复制到您的 Mercurial 服务器,供用户 LOCAL_USER 使用。这样你最终会得到一个用户在 Mercurial 服务器上有两个不同的 public 密钥,每个私钥在不同的盒子上。

如果您信任 REMOTE 服务器 %100,您可以将当前的私钥复制过来,但这通常不是一个好主意。