如果觉得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脚本, 实现一个简易的文件推送功能
比如你想实现一种同步盘的功能,自动同步发生变化的文件
时间: 2024-10-11 19:53:36