Django企业开发实战学习笔记之Windows下使用Fabric免密连接Ubuntu

一、系统环境

  1. 主机环境为Win10系统,需连接到的系统为Ubuntu18.04系统(使用Win10下子系统功能安装),
  2. Win10下所需软件Putty下载地址
  3. Ubuntu下所需软件openssh-client,openssh-server

二、问题来源

我已经在Ubuntu系统下安装了openssh-client,openssh-server软件,也已经通过ssh-keygen -t rsa命令生成了公钥和私钥。在项目中使用Fabric库连接Ubuntu系统进行自动化部署时,一直提示我输入密码。

三、排除思路

经过一番搜索,找到问题的根源是Ubuntu系统无法识别我的身份,需要进行身份验证。因此联想到可不可以通过免密登录来解决这个问题,于是进行了一番验证之后,果然成功了。

四、操作步骤

(一)使用Putty生成公钥及私钥

  1. Win10下需借助Putty来生成公钥私钥,并把公钥放到Ubuntu系统中。在上面的链接中下载Putty。
  2. 按照这个教程的步骤分别在本地保存私钥,并把公钥放到Ubuntu系统中。

(二)修改Ubuntu系统中.ssh相关文件的权限

修改.ssh文件夹及其下面authorized_keys文件权限。
注意:.ssh文件位置由ssh-keygen -t rsa命令的执行用户确定。如果是非root用户,该文件在/home/目录下相应的用户文件夹下。

chmod 700 ~/.ssh/
chmod 600 .ssh/authorized_keys

(三)Fabric脚本编写

  1. 运行puttygen.exe,load 前面保存的私钥文件(格式为.ppk),然后选择菜单Conversions->Export OpenSSH key,保存文件。
  2. 在Fabric脚本中加入下面代码
from fabric.api import run, env, roles, prefix, put ,cd

env.key_filename = ['D:/DjangoProject/fabT'] # 导出的OpenSSH key文件路径
env.roledefs = {
    'develop': [
    '你的用户名@主机地址'], 
    }

@roles('develop')
def deploy(version):
    run(你的业务代码)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值