需要一些帮助。
我想不时手动运行一个脚本来在我的生产和开发实例之间移动文件。
目前我有这个作为一个shell脚本:
rsync --progress -avz -e "ssh -vvv -i $HOME/.ssh/my-ubuntu-ec2.pem" ubuntu@:111.111.111.111/var/www/test /var/www/test
我的问题是我无法找到或联系 .pem 文件。我已经搜索了通常的地方并在整个系统中进行了文件搜索,但什么也没有。有问题的 key 对是通过控制台创建的,我以通常的方式手动将 key 添加到 authorized_keys 中。我原以为控制台会将 key 部署到 EC2 实例,但情况似乎并非如此。至少,我找不到他们。
我相信有人会发现我哪里出错了!
提前致谢,
杰森
最佳答案
在 Amazon EC2 管理控制台中创建 key 对时, key 对(.pem
文件)会下载到您的计算机。这是私钥。
在控制台中创建 key 对不会将 key 放在任何现有的 Amazon EC2 实例上。但是,当启动一个新实例时,您可以选择一个 key 对,它将被添加到 /home/ec2-user/.ssh/authorized_keys
文件。
如果你有私钥,你可以生成一个公钥 从 .pem 文件中:
ssh-keygen -y -f key.pem > key.pub
公钥应放在目标计算机的~/.ssh/authorized_keys
中。目标用户的文件(在您的命令示例中为 ubuntu
)。私钥应在源计算机上使用(根据您的代码示例中的
my-ubuntu-ec2.pem
)。如果您丢失了私钥,则需要生成一个新的并替换实例上的 key 。
关于linux - 2 个 AWS EC2 实例之间的 rsync : cannot locate . pem 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62679647/