跨 AWS 实例传输文件

跨 AWS 实例传输文件

如何跨 AWS Linux 实例传输文件?两个实例都使用密码文件进行身份验证。

有什么具体的方法可以做到这一点吗?

请就此给我一些建议。

谢谢!

答案1

为什么不基于密钥认证在 AWS 上的服务器之间配置无密码登录,然后你就可以使用 SCP 或 Rsync 了。下面是在两台服务器之间设置无密码登录的步骤

源服务器(或本地系统)为该系统上的用户生成 RSA 密钥,您也可以使用 DSA。这会要求输入密钥密码,但您可以将其留空。

  ssh-keygen -t rsa

这会询问放置生成密钥的位置,默认情况下它将是您的主目录(例如:/home/your_username/.ssh/)。这会生成两个文件:id_rsa 和 id_rsa.pub。id_rsa.pub 的内容是我们需要复制到目标服务器的内容。

  Destination Server (or remote server)

检查您的主目录中是否有 .ssh 目录(例如:/home/username/.ssh/),如果没有,请创建该目录。

  ls  ~/.ssh
  mkdir  ~/.ssh

检查您的 .ssh 目录中是否有现有的文件 authorized_keys,如果没有,请创建它。

  ls  ~/.ssh/ authorized_keys
  touch   ~/.ssh/ authorized_keys

从源/本地服务器复制您创建的 id_rsa.pub 的内容,或者从源/本地服务器执行此命令:

  scp  ~/.ssh/id_rsa.pub username@remote_host:~/.ssh/authorized_keys

答案2

设置 SSH 密钥后,使用包管理器安装 RSYNC

apt-get install rsync (Ubuntu)
yum install rsync (Centos)

然后,您可以使用 RSYNC 使用此命令复制(同步)文件

rsync -e 'ssh -p 9999' -avl --delete --stats --progress [email protected]:/home/demo /backup

其中 9999 是端口号。SSH 默认使用端口 22,如果您设置了其他端口,请在此处提及。

'demo' 是您在源服务器上的用户名。

'999.45.67.890' 是源服务器的 IP 地址

'/home/demo' 是您要备份/同步的源服务器上的目录

/backup 是目标服务器上的目录

相关内容