两个EC2实例之间的Lsyncd

时间:2017-05-14 14:04:11

标签: amazon-web-services ssh amazon-ec2 ssh-keygen lsyncd

我有两个EC2实例,我正在尝试在两个实例之间同步一个目录。

我已在其中一个实例上设置了lsyncd服务,并且能够将目录同步到同一实例上的不同目录。 现在我正在尝试将同一目录与第二个实例同步,但它无法正常工作。

它不起作用的原因是我无法在第二个实例上使用ssh-keygen -t rsa放置在第一个实例上生成的密钥,以允许它们相互访问。

我尝试了sudo ssh-copy-id -i /path/to/key ec2-user@ip-of-second-instance但是没有用。 我还试图手动将公共部分从第一个实例的key.pub文件复制到第二个实例的~/.ssh/authorized_keys,但它也不起作用。

这是我的lsynd配置设置:

settings = {
    insist = true,
    logfile = "/var/log/lsyncd/lsyncd.log",
    statusFile = "/var/log/lsyncd/lsyncd.status"}

sync {
        default.rsyncssh,
        source = "/home/ec2-user/IntSrv/Sync",
        host = "second-instance-ip",
        target = "/home/ec2-user/GenSrv/Sync",
}

我做错了什么?我该如何解决这个问题? 任何帮助,将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

您可能想要使用键重新开始。

你应该真的是generating your own keys for each user。然后,对于要授予实例访问权限的每个用户,将其密钥添加到.ssh/authorized_keys文件中,ec2-usercreate a user account for them first,并将其添加到authorized_keys文件。

Amazon EC2生成的密钥应用于获取初始访问到您的实例。然后,正确的安全措施是删除该密钥并添加您自己的密钥。这样,您就可以通过自己的密钥对访问每个人,如果您希望撤消访问权限,可以将其删除。

虽然我不熟悉lsyncd,但我怀疑如果ssh工作,那么lsyncd也可能会正常工作。

所以,快速摘要:

  • 使用ssh-keygen
  • 为您生成密钥
  • 连接到所需的实例,并将您的公钥对添加到所需用户主目录中的authorized_keys
  • 使用这些密钥而不是Amazon EC2生成的密钥