两台服务器之间SCP免密传输文件-适合定时任务传输

第一步:在A服务器上生成SSH密钥对登录到A服务器。

生成SSH密钥对:

ssh-keygen -t rsa

按提示操作,建议不设置密码,这样可以实现真正的免密。默认生成的密钥文件会保存在~/.ssh/id_rsa和~/.ssh/id_rsa.pub。

第二步:将A服务器的公钥复制到B服务器将公钥复制到B服务器:

 cat ~/.ssh/id_rsa.pub | ssh user@B_server_IP 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'
在这个过程中,你需要输入B服务器的用户密码来进行验证。

第三步:配置B服务器的SSH服务,确保B服务器上的SSH配置允许使用公钥认证。编辑/etc/ssh/sshd_config文件: 

sudo vi /etc/ssh/sshd_config
确保以下行存在且没有被注释(即行前没有#号):

 PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

然后重启SSH服务:

sudo systemctl restart sshd

 第四步:从A服务器使用SCP命令免密拷贝文件,使用SCP命令从B服务器拷贝文件到A服务器:

scp user@B_server_IP:/path/to/remote/file /path/to/local/destination 

 测试是否可以免密登录:

ssh user@B_server_IP

 如果不需要输入密码就能登录成功,说明配置成功。
这样,A服务器就可以免密从B服务器上通过SCP取文件了。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Linux服务器之间实现免密传输文件可以使用SSH(Secure Shell)协议和两台服务器之间的密钥认证。 首先,在服务器A上生成公钥和私钥对。可以使用以下命令生成: ``` ssh-keygen -t rsa ``` 这将在~/.ssh目录下生成id_rsa和id_rsa.pub文件,其中id_rsa为私钥,id_rsa.pub为公钥。 然后,在服务器B上创建一个.ssh目录,并将服务器A生成的公钥复制到服务器B的~/.ssh/authorized_keys文件中。 ``` mkdir ~/.ssh chmod 700 ~/.ssh vim ~/.ssh/authorized_keys 将服务器A生成的公钥复制到authorized_keys中保存退出。 ``` 接下来,将服务器B的公钥复制到服务器A的authorized_keys中,以实现双向的免密传输。 最后,确保服务器A和服务器B的.ssh目录的权限设置为700,authorized_keys文件的权限设置为600,以确保只有拥有者有读写权限。 现在,当从服务器A到服务器B传输文件时,就不再需要输入密码。可以使用以下命令: ``` scp file user@serverB:/path/to/destination ``` 其中,file是要传输文件,user是服务器B的用户名,serverB是服务器B的IP地址或域名,/path/to/destination是文件传输服务器B的目标路径。 通过上述步骤,我们成功实现了Linux服务器之间免密传输文件。 ### 回答2: 在Linux服务器之间实现免密传输文件可以通过使用SSH密钥对来实现。下面是具体的步骤: 1. 在源服务器上生成SSH密钥对。可以使用`ssh-keygen`命令来生成密钥对,该命令会生成公钥和私钥文件。 2. 将公钥文件拷贝到目标服务器上。可以使用以下命令将公钥文件拷贝到目标服务器上: ``` ssh-copy-id -i <公钥文件> <目标服务器用户名>@<目标服务器IP地址> ``` 3. 输入目标服务器密码进行验证,然后公钥文件将被自动拷贝到目标服务器的`~/.ssh/authorized_keys`文件中。 4. 现在可以在源服务器上使用`scp`命令进行免密传输文件到目标服务器。 ``` scp <文件路径> <目标服务器用户名>@<目标服务器IP地址>:<目标路径> ``` 5. 这样,文件将被安全地传输到目标服务器上,而无需再次输入密码。 注意:为了确保安全性,私钥文件应该妥善保管,并限制访问权限。此外,还可以通过禁用密码登录来进一步加强服务器的安全性。 ### 回答3: 在Linux服务器之间实现免密传输文件,可以通过使用SSH密钥对的方式来实现。 首先,需要在发送文件服务器上生成一对SSH密钥(公钥和私钥)。这可以通过运行`ssh-keygen`命令来完成。在执行命令时,可以选择保存密钥的位置及密钥的名称。默认情况下,公钥和私钥会保存在用户的家目录的.ssh文件夹中。 然后,将公钥复制到接收文件服务器上。可以通过运行以下命令将公钥复制到目标服务器: ``` ssh-copy-id username@remote_server ``` 其中,`username`是目标服务器的用户名,`remote_server`是目标服务器的IP地址或域名。在执行命令时,需要提供目标服务器的登录密码。 接下来,验证是否成功免密传输文件。可以通过运行以下命令来登录到目标服务器: ``` ssh username@remote_server ``` 这次登录时,将不会要求输入密码。 最后,可以使用`scp`命令在服务器之间进行免密传输文件。例如,要将本地文件`file.txt`传输到目标服务器上: ``` scp file.txt username@remote_server:/path/to/destination ``` 其中,`/path/to/destination`是目标服务器上保存文件的路径。 通过上述步骤,就可以实现Linux服务器之间免密传输文件了。这种方法提供了更高的安全性,同时减少了每次传输文件时需要手动输入密码的麻烦。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值