linux 不同服务器scp免密远程传输文件实例 ssh 免密登录

本文介绍了如何在A服务器上通过SSH-keygen生成RSA密钥对,并将公钥复制到B服务器,实现免密SCP传输文件和SSH登录。过程中需要注意避免覆盖已有的authorized_keys文件,如果遇到仍需密码的情况,可能需要检查B服务器.ssh目录的权限设置。
摘要由CSDN通过智能技术生成

假使现在有A(客户端),B(服务端)两台服务器,需要在A服务器上免密scp传输文件到B服务器,操作如下。

1.在A服务器执行ssh-keygen -t rsa,生成配对秘钥,一直enter即可,注意不要输入passphrase(口令)。

执行完该命令后,会在当前用户的.ssh目录下生成id_rsa,id_rsa.pub两个文件

(.ssh是隐藏文件夹,使用ls -al命令查看隐藏文件夹)

2.执行以下命令将 id_rsa.pub(公钥)这个文件复制到B服务器用来登录用户的.ssh目录下,并重命名为authorized_keys

命令:scp -P 端口号 id_rsa.pub B服务器登录用户名@B服务器IP:~/.ssh/authorized_keys
注意:如果发现B服务器该用户的.ssh目录下已有authorized_keys文件,说明B服务器之前已经和其他服务器建立过信任链接,在此我们不能覆盖该文件,只需要将A服务器的公钥追加到B服务器的authorized_keys即可,命令:cat id_rsa.pub >>authorized_keys

至此,A服务器scp传输文件到B服务器或者A服务器从B服务下载文件均不再需要输入密码了。

同时,A服务器上ssh B服务器也不需要输入密码了。

说明:如果配置之后, A ssh B 发现仍然需要输入密码,可能是没有修改服务端(B服务器).ssh文件夹的权限导致的,进入到服务端的用户(.ssh)所在目录下,执行以下命令:

chmod 700 ~/.ssh

chmod 600 ~/.ssh/authorized_keys
 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值