Typora安装PicGo+云服务器搭建图床

Typora安装PicGo+云服务器搭建图床

1、前言

目前大部分人都采用Markdown语法写博客,平时图片都是存在本地,当博客发布到服务器上时,图片无法限制。这时候我们就需要用到图床,这里介绍一种利用PicGo和云服务器搭建私有图床的方案。

2、建立sftp用户

出于安全原因,我们专门给图床应用建立一个单独的用户,禁止该用户通过ssh登录,同时也不建立家目录。

创建sftp组

groupadd sftp

创建sftp用户,同时添加到刚才的组,以及禁止登录

useradd -g sftp -s /sbin/nologin sftpuser

给用户sftpuser设置密码

passwd sftpuser

创建目录

mkdir -p /data/sftp

确保该目录及该目录以上的系统根目录的拥有者都只能是root用户,

给目录设置用户

chown root:sftp /data/sftp

给目录设置写入权限

chmod 755 /data/sftp

该目录权限最大为755,设置成777会报错

创建用户sftpuser根目录,目录名为用户名

mkdir /data/sftp/sftpuser
# 设置sftpuser目录权限
chown -R sftpuser:sftp /data/sftp/sftpuser
chmod -R 755 /data/sftp/sftpuser

配置sshd_config

vi /etc/ssh/sshd_config

修改如下内容,并保存退出

# 注释掉这行
# Subsystem sftp /usr/libexec/openssh/sftp-server

并在文件最后面添加以下配置

# 指定使用sftp服务使用系统自带的internal-sftp
Subsystem sftp internal-sftp
# 匹配用户,如果要匹配多个用户,多个用户之间用逗号分割
Match User sftpuser
# 指定该账户的根目录
ChrootDirectory /data/sftp/
# 下面这两行,如果不希望该用户能使用端口转发的话就加上,否则删掉
X11Forwarding no
AllowTcpForwarding no
# 指定sftp命令
ForceCommand internal-sftp

说最后面是因为,该文件通常末尾还有Ciphers配置,Ciphers配置需要在该配置之前

刷新配置

systemctl restart sshd.service

sftpuser用户登录测试

sftp -oPort=22 sftpuser@127.0.0.1

登录成功如下图:

image-20230415182903142

3、配置Nginx

前面我们建好了我们图片上传的目录/data/sftp/sftpuser,图片上传之后我们需要能被Typora或博客能访问到,我们给该目录配置一个访问域名,我们这里采用https二级域名访问。

之所以要采用https域名是,在很多你要发布博文的网站,如果不采用https域名,会无法加载图片。

我假定目前你已经具备了如下条件:

  • 已部署nginx

  • 已有域名及相应的SSL证书

如果没有,可以参考博主的其它文章准备。

修改nginx配置文件nginx.conf,增加如下配置

    server {
        listen 80;
        # 二级域名
        server_name img.xing.com.cn; 
 
        #核心代码
        rewrite ^(.*)$ https://${server_name}$1 permanent;
    }

    server {
        listen       443 ssl;
        # 二级域名
        server_name  img.xing.com.cn;

        # ssl证书
        ssl_certificate      xing.com.cn.crt;
        ssl_certificate_key  xing.com.cn.key;

        # ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers  on;

        location / {
            root   /data/sftp/sftpuser/;
            index  index.html index.htm;
        }
    }

请把img.xing.com.cn换成你的域名,xing.com.cn.crtxing.com.cn.key换成你的ssl证书。

然后重启nginx。

此时可以上传一张图片到前面创建的 /data/sftp/sftpuser/ 文件夹下,通过 域名/图片名 即可访问。

4、安装PicGo

4.1、安装

GitHub下载地址:https://github.com/Molunerfinn/PicGo/releases

选择相应的系统和位数下载即可

image-20230415184123990

双击exe文件进行安装,一直默认即可(也可以自定义安装目标文件夹)。

4.2、使用

4.2.1、下载插件

打开PicGo,在左侧选择[插件设置],搜索sftp

image-20230415211818265

安装sftp-uploader 1.3.0

4.2.2、配置插件

插件安装完成后,点击左侧[图床设置]->[SFTP 上传]进行配置。如图:

image-20230415232807680

网站标识:随意定义

配置文件:为 SFTP 配置文件的路径,设置任意你想放置的路径。

点击[确定]和[设为默认图床]。

按上面设置的配置文件路径创建配置文件(我的是D:/config/MyPicBed.json),设置如下内容:

{
	"MyPicBed": {
		"url": "https://img.xing.com.cn",
		"path": "/uploads/{year}/{month}/{hash16}_{fullName}",
		"uploadPath": "./sftpuser/uploads/{year}/{month}/{hash16}_{fullName}",
		"host": "106.*.*.*",
		"port": 22,
		"username": "sftpuser",
		"password": "password"
	}
}

MyPicBed:网站标识

url:图片网站的域名

path:图片在网址中的路径,即网站根目录下的路径

uploadPath:图片在服务器的真实路径

host:SSH 地址

port:SSH 端口

username:SSH 用户登录用户

password:SSH 用户登录密码

详细配置文件说明请参考https://github.com/imba97/picgo-plugin-sftp-uploader

4.2.3、上传

点击左侧[上传区]

image-20230416001108928

选择SFTP上传,上传文件后,可以在文件服务器看到上传的文件:

image-20230416001252303

此时也可以通过浏览器域名访问,浏览刚才上传的文件:

image-20230416001432750

此时,PicGo已经配置完成。

5、配置Typora

在 Typora 中打开菜单[文件]->[偏好设置…],

在偏好设置界面左侧点击[图像],

image-20230416002059233

插入图片时…选择上传图片

上传服务设定选择 PicGo (app),同时选择本地安装的 PicGo.exe 文件。

可以点击验证图片上传选项,验证是否能正常上传,和获取的url是否正确。

这样在 Typora 插入图片时即可自动上传到服务器上

6、小结

恭喜你,完成了自建图床!!!!!!

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值