无需密码通过scp命令+key的方式实现文件传输

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无需密码通过scp命令+key的方式实现文件传输相关的知识,希望对你有一定的参考价值。

如果觉得scp每次都要输入密码很麻烦, 那么这是解决方案.
假设你平时在windows上开发,用户名是xiang, 你有一台Ubuntu服务器wdksw.com, 用户名是root.现在你准备上传一些文件到服务器上.
为方便叙述,w表示windows, u表示Ubuntu.w$表示在windows端输入的命令, u$表示在Ubuntu端输入的命令.

  • 首先在w端生成一对key

w$ssh-keygen -t rsa
如果一直按enter,则会在C:\Users\xiang\.ssh文件夹下生成id_rsa和id_rsa.pub两个文件.

  • 其次确保u端的ssh配置允许root用户登录

u$vim /etc/ssh/sshd_config
确保PermitRootLogin为yes.我的服务器默认就是yes.因此无需更改.

  • 将win端的id_rsa.pub上传到服务器的~/keys文件夹

u$mkdir ~/keys

上传文件:
w$scp ~/.ssh/id_rsa.pub [email protected]:~/keys

  • 将上传的key添加到ssh的授权列表

如果.ssh文件夹不存在,创建之.
u$mkdir ~/.ssh
u$cat ~/keys/id_rsa.pub>>~/.ssh/authorized_keys

  • 搞定

win端再尝试使用scp命令, 你会发现无需输入密码.

  •  扩展

接下来,你可以在win端写个Python脚本, 实现一个简易的文件推送功能

比如你想实现一种同步盘的功能,自动同步发生变化的文件

 

以上是关于无需密码通过scp命令+key的方式实现文件传输的主要内容,如果未能解决你的问题,请参考以下文章

SCP实现无需密码传输文件

Python不同电脑之间传输文件实现类似scp功能不输密码

服务器之间的文件下载(需要密码的scp方式或者无需密码两种方式)

Linux机器间ssh免密登录

Linux间传输文件 scp

Linux scp 免密码 传输文件