如何跨 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 是目标服务器上的目录