如何实现 scp 免密码传输文件

老虎说测试 系统运维字数 690阅读2分18秒阅读模式
摘要在工作生活过程中,接触到的服务器比较多,难免会需要在各个服务器之间进行文件传输,主要是用来备份文件,那如何高效的进行文件传输就是个问题,今天推荐使用 scp 来进行文件传输,由于普...

在工作生活过程中,接触到的服务器比较多,难免会需要在各个服务器之间进行文件传输,主要是用来备份文件,那如何高效的进行文件传输就是个问题,今天推荐使用 scp 来进行文件传输,由于普通的传输需要验证密码,这里直接推荐使用证书,免密码进行文件传输。

首先,我们在查看需要传输文件的服务器是否存在 SSH Key:文章源自陈学虎-https://chenxuehu.com/article/2022/10/8040.html

cd ~/.ssh

-bash: cd: /root/.ssh: No such file or directory  # 这样是没有 SSH key

ls

 文章源自陈学虎-https://chenxuehu.com/article/2022/10/8040.html

如果不存在,我们使用如下命令生成 SSH key:文章源自陈学虎-https://chenxuehu.com/article/2022/10/8040.html

ssh-keygen -t rsa

输入如上命令,然后敲击三次回车键即可:文章源自陈学虎-https://chenxuehu.com/article/2022/10/8040.html

如何实现 scp 免密码传输文件文章源自陈学虎-https://chenxuehu.com/article/2022/10/8040.html

这样就生成完成,会有如下两个文件:文章源自陈学虎-https://chenxuehu.com/article/2022/10/8040.html

-rw-------. 1 root root 1.7K Oct  6 20:57 id_rsa
-rw-r--r--. 1 root root  401 Oct  6 20:57 id_rsa.pub

接下来我们将 id_rsa.pub 的内容追加到要传输到的服务器的 authorized_keys 文件中,如果没有 authorized_keys 文件,则创建:文章源自陈学虎-https://chenxuehu.com/article/2022/10/8040.html

cd ~/.ssh

ls

这里我们可以在要传输到文件的服务器上创建一个文件, 如 t ,然后将本地的 id_rsa.pub 内容粘贴到这个文件中,然后再将 t 的内容追加到 authorized_keys 中:文章源自陈学虎-https://chenxuehu.com/article/2022/10/8040.html

vi t

//粘贴内容

cat t >> authorized_keys

这样就完成了追加,接下来,我们测试下,是否能正常的传输文件:文章源自陈学虎-https://chenxuehu.com/article/2022/10/8040.html

scp -r -P 22 file.txt  root@IP:/root/backup/

 文章源自陈学虎-https://chenxuehu.com/article/2022/10/8040.html

我们能发现,文件已经能成功的传输了,而且不需要输入密码,这样我们就可以通过脚本去实现灵活的备份了。

 

 

 

 

 

 
  • 版权声明:本文为原创文章,转载请附上原文出处链接及本声明。
  • 转载请注明:如何实现 scp 免密码传输文件 | https://chenxuehu.com/article/2022/10/8040.html