环境介绍

服务器:腾讯云 + centos + onestack搭建好的lnmp环境

本地:mac

安装openssh

sudo yum install openssh-client openssh-server openssh-sftp-server

配置

ssh方式连接sftp的配置文件在/etc/ssh/sshd_config, 可以在该文件指定端口号和相关参数。修改配置后需要重启ssh

  • centos: systemctl restart sshd
  • ubuntu: service restart ssh

命令行连接sftp

本地终端执行:

sftp -P22 root@{ip地址}
# 设置了密码的需要输入登录密码。

连接成功后默认进入的是登录用户的用户目录,root用户进入到/root目录,admin用户进入到/home/admin目录。

问题:vscode 无法同步

初始配置

{
"name": "{服务器ip}",
"host": "{服务器ip}",
"protocol": "sftp",
"port": 22,
"username": "root",
"password": "{对应的用户密码}",
"remotePath": "/data/wwwroot/www.i2arch.tech/frontend",
"uploadOnSave": true,
"ignore": [".vscode", ".git", ".DS_Store", "node_modules", "vendor"]
}

问题

终端连接成功后,配置sftp sync插件,但是上传和下载时提示Permission Denied

问题分析

由于我的服务器上root用户配置了禁用密码登录,只能使用ssh登录,所以不用设置password项,即使设置了也是无效的。而sftp的配置默认加载的私钥文件是~/.ssh/id_rsa。而我设置连接服务器的秘钥文件是~/.ssh/github_rsa

调整后:

{
"name": "{服务器ip}",
"host": "{服务器ip}",
"protocol": "sftp",
"port": 22,
"username": "root",
"remotePath": "/data/wwwroot/www.i2arch.tech/frontend",
"privateKeyPath": "/Users/kameila/.ssh/github_rsa",
"uploadOnSave": true,
"ignore": [".vscode", ".git", ".DS_Store", "node_modules", "vendor"]
}

此后便可以成功同步服务器文件。

备注

起初服务器搭建sftp参考了教程Linux 配置SFTP,配置用户访问权限,按操作创建单独的sftp用户组sftp-users,单独的sftp用户admin,单独的文件同步目录/home/admin,等等。但是操作完有一系列问题。

问题1: 单独的文件同步目录/home/admin需要设置成sftp用户组和用户的访问权限,但是我的web服务器nginx的目录是/data/wwwroot/www.i2arch.tech/frontend,并且nginx配置里面需要web目录的权限用户组和用户是www。这导致sftp同步文件之后还需要考虑方案来让nginx服务器直接能够访问sftp同步目录。

对于sftp同步目录nginx的web目录不一致的问题还可以通过修改nginx虚拟主机配置文件的根目录或者建立软链的方式解决,但是目录权限的问题却没有想到好的办法。

经过一系列尝试以后,最后想着与其修改nginx的配置重定义根目录用户组和用户,不如通过修改sftp组名和用户名的方式调整,并且后来查看公司sftp的配置文件,发现公司的这个配置文件并没有重新定义用户组和用户,所以感觉好像没必要创建单独的组合用户,于是索性没再按照上述教程中的步骤,直接通过root或admin用户访问。

绕了一大圈的感觉,但是不知道这种方式对于企业级项目会不会存在安全隐患,目前个人服务器上使用对于安全的要求没有那么大,先这样使用,如果有问题再做调整。

vscode使用sftp同步服务器文件的更多相关文章

  1. PHPstorm配置同步服务器文件

    一.配置服务器 1.连接配置 打开菜单栏 Tools -> Deployment -> Configuration 点击 + 选择 SFTP,并填写相关服务器信息: Type:连接类型,这 ...

  2. phpstorm同步服务器文件

    配置服务器 1.连接配置 打开菜单栏 Tools -> Deployment -> Configuration 点击 + 选择 SFTP,并填写相关服务器信息: Type:连接类型,这里选 ...

  3. windows系统下用VScode配置远程编辑服务器文件的环境!通过Rmate方法

    虽然公司电脑win可以通过Xshell通过SSH远程连接家中内网linux服务器了,但是只能用vim编辑文件有点不爽. 于是上网查询,windows下使用vscode远程编辑服务器文件的办法.参照博文 ...

  4. 通过ftp同步服务器文件:遍历文件夹所有文件(含子文件夹、进度条);简单http同步服务器文件实例

    该代码主要实现,指定ftp服务地址,遍历下载该地址下所有文件(含子文件夹下文件),并提供进度条显示:另外附带有通过http地址方式获取服务器文件的简单实例 废话不多说,直接上代码: 1.FTPHelp ...

  5. 用PHPstorm同步服务器文件断开连接

    使用同步功能,PHPstorm好像会一个一个去对比服务器上的文件,导致频繁请求建立连接,服务器本地安全策略做了屏蔽,所以进入黑名单后就无法连接了

  6. VPS服务器利用WINSCP软件进行SFTP管理服务器文件

    虽然我使用VPS时间也不是很久,但是我善于进行统计和分析,从我在的一些VPS交流QQ群中,可以看到基本上使用搬瓦工VPS的站长群中新手较多,甚至很多人都搞不明白VPS与V-P-N的区别都直接选择VPS ...

  7. Visual Studio Code中设置sftp同步代码到服务器

    ## **前言** - 绝对的大佬才会直接在Linux下用vim写代码,我等小白只能通过IDE来了,所以将代码同步到服务器上就很重要了.使用vs code设置好sftp就可以实现这一功能. - 设置之 ...

  8. 使用rsync+inotify同步两台服务器文件

    目标功能:将B服务器文件同步到A服务器 A服务器rsyncd.conf配置 权限600 A服务器rsyncd.pas文件配置  权限600 同步文件路径 /data/wwwroot/shen/  权限 ...

  9. BAT实现服务器文件同步

    服务器文件同步有很多工具,例如 GoodSync.rsync.BitTorrent Sync等……其实WINDOWS下自带了一个文件同步利器:ROBOCOPY.它是一个命令行的目录复制命令,自从Win ...

随机推荐

  1. HTTP与HTTPS之面试必备

    本文主要讲解Http与https的区别,以及https是怎样加密来保证安全的. 首先讲这俩个协议的简单区别: HTTP:超文本传输协议. HTTPS:安全套接字层超文本传输协议HTTP+SSL HTT ...

  2. 帝国CMS(EmpireCMS) v7.5后台任意代码执行

    帝国CMS(EmpireCMS) v7.5后台任意代码执行 一.漏洞描述 EmpireCMS 7.5版本及之前版本在后台备份数据库时,未对数据库表名做验证,通过修改数据库表名可以实现任意代码执行. 二 ...

  3. ‎Cocos2d-x 学习笔记(21) ScrollView (CCScrollView)

    1. 简介 CCScrollView.cpp文件内的滚动视图ScrollView直接继承了Layer+ActionTweenDelegate. 滚动视图能在屏幕区域内,用户通过触摸拖动屏幕,实现大于屏 ...

  4. Python变量类型说明

    Python中的变量不需要声明,直接赋值便是声明和定义的过程 每个变量在内存中创建,都包括变量的标识.名称和数据这些信息 每个变量在使用前必须赋值 counter = 100 #正数变量 miles ...

  5. 为什么操作DOM会影响WEB应用的性能?

    面试官经常会问你:"平时工作中,你怎么优化自己应用的性能?" 你回答如下:"我平时遵循以下几条原则来优化我的项目.以提高性能,主要有:" a. 减少DOM操作的 ...

  6. Nacos(六):多环境下如何“管理”及“隔离”配置和服务

    前言 前景回顾: Nacos(五):多环境下如何"读取"Nacos中相应环境的配置 Nacos(四):SpringCloud项目中接入Nacos作为配置中心 现如今,在微服务体系中 ...

  7. H5 API drawImage的参数

    drawImage(this,120,0,180,150,0,0,180,150); //mg图片上的x坐标 img图片上的y坐标 剪切的宽 剪切的高 在canvas上的x坐标 在canvas上的y坐 ...

  8. Spring Boot MyBatis 数据库集群访问实现

    Spring Boot MyBatis 数据库集群访问实现 本示例主要介绍了Spring Boot程序方式实现数据库集群访问,读库轮询方式实现负载均衡.阅读本示例前,建议你有AOP编程基础.mybat ...

  9. POJ 1015 陪审团问题

    题意略. 思路: 这个题目开始我本来打算用个二维dp,令dp[ i ][ j ]为考虑前i个人,有j个名额的时候,我所能获取的最小差,后来发现不好转移.因为dp[ i ][ j ]有可能是+2, 也有 ...

  10. Java集合框架之ArrayList浅析

    Java集合框架之ArrayList浅析 一.ArrayList综述: 位于java.util包下的ArrayList是java集合框架的重要成员,它就是传说中的动态数组,用MSDN中的说法,就是Ar ...