Linux下用SCP无需输入密码传输文件
Linux下用SCP无需输入密码传输文件
淡定的米哥 发表于3个月前
Linux下用SCP无需输入密码传输文件
  • 发表于 3个月前
  • 阅读 14
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

Linux服务器之间经常会遇到相互传送文件,使用scp命令老是提示需要密码,下面介绍一下免密码的方法:

A服务器的IP:192.168.0.1,B服务器的IP:192.168.0.2,需求:需要从A免密码输入复制文件至B


1. 在服务器A上执行如下命令来生成配对密钥

ssh-keygen -t rsa 

按照提示操作,注意,不要输入passphrase,因为我的之前已经操作过,所以还提示了是否覆盖,输入 "y"回车就可以。其他提示信息如下:

Generating public/private rsa key pair. 
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa. 
Your public key has been saved in /root/.ssh/id_rsa.pub. 
The key fingerprint is: 
ff:8e:85:68:85:94:7c:2c:46:b1:e5:2d:41:5c:e8:9b root@localhost.domain

2. 将 /root/.ssh/ 目录中的 id_rsa.pub 文件复制到 服务器 B 的 /root/.ssh/ 目录中,并改名为 authorized_keys

scp .ssh/id_rsa.pub root@192.168.0.2:/root/.ssh/authorized_keys

以后从服务器A scp 到服务器 B 就不需要密码了。

3.使用此方法需要注意:复制的两台计算机需要用相同的账户名,这里都是用的root。为了安全起见,需要在两台机器中创建相同的账号,然后在服务器A 上用 su 命令切换至该账号下,然后执行第1步,第2步中复制文件时可能 ~/.ssh/ 目录并不存在,需要手动创建。

在第2步中如果机器中已经存在authorized_keys文件,则需注意,这个文件可以包含多个SSH验证信息,这时可用 cat >> 命令将验证文件内容附加上去。

现在服务器A上执行脚本

scp ~/.ssh/id_rsa.pub root@192.168.0.2:/root/.ssh/s.pub

然后在服务器B 上执行

cat ~/.ssh/s.pub >> ~/.ssh/authorized_keys

最后可以用个小的文本文件试试,在服务器A上执行

touch ~/test
scp ~/test root@192.168.0.2:/root/

在服务器 B 上用 ls查看是否成功,其实刚才在服务器A 上执行 scp 的时候已经提示传输成功了。

标签: Linux
共有 人打赏支持
粉丝 38
博文 67
码字总数 13499
×
淡定的米哥
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: