• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 在 centOS 上配置 SFTP、 SCP

    在远程服务器端中,用户种类:

    • root:系统超级用户,属于 root 组。禁止 ssh 登录远程服务器 shell。
    • admin:自定义管理员用户,属于 wheel 组。允许 ssh 登录远程服务器 shell。
    • developer:自定义普通用户,属于 develop 组。允许 ssh 登录远程服务器 shell。对项目程序代码文件,是所有者scp、sftp 下载上传文件
    • git:自定义普通用户,属于 develop 组。禁止 ssh 登录远程服务器 shell。对共享的 Git 仓库是所有者。Git 上传下载 Git 远程仓库。

    在本机客户端中,用户种类:

    • root:系统超级用户,属于 root 组。进入本机 ceonOS 时,默认使用的用户。为了个人方便,本机使用最大权力。


    SFTP、SCP

    SCP、SFTP 都是用来传输文件的,都是使用 SSH 加密协议传输文件,都实现了文件的安全传输。几乎所有 Linux、Unix 甚至 Mac 系统上都预装了 SCP 实用程序。在安装 OpenSSH 的时候,SSH、SCP、SFTP 都被一起安装上了。Windows 上可以安装 WinSCP 、Putty 等程序,以便在 Windows 系统上与 Linux 系统,进行交互以及文件传送,在 Windows 上,需要安装并启用 sshd 守护程序。

    SFTP:

    • sftp(Secure File Transfer Protocol),相当于SSH 版的 ftp(SSH File Transfer Protocol)。sftp 是用 SSH 封装过,经过加密的 ftp ,功能与 ftp 一样。
    • sftp 包含两部分,服务端 sftp-server和客户端 sftp client。

    SCP:

    • scp 是 Secure Copy 的简称,用于不同 Linux 主机之间,进行远程数据传输,相当于经过加密的 Copy 命令。数据传输使用 SSH 协议,并且和 SSH 使用相同的认证方式,提供相同的安全保证。
    • scp 还非常不占资源,不会提高多少系统负荷,在这一点上,rsync 就远远不及它了。虽然 rsync 比 scp 会快一点,但当小文件众多的情况下,rsync 会导致硬盘 I/O 非常高,而 scp 基本不影响系统正常使用。
    • scp 作用:远程服务器既没有配置 ftp 服务器,没有开启 web 服务器,也没有做共享时,只需要通过 scp 命令便与远程服务器端进行上传下载文件。
    • 当你服务器硬盘变为只读 read only system 时,用 scp 可以帮你把文件移出来。

    SFTP 和 SCP 区别:

    • sftp:功能强大,除去支持上传、下载之外,还可以列出目录、更改权限和所有者、删除和重命名文件,甚至创建符号链接。scp:是轻量级的,只支持上传下载。
    • sftp:支持断点续传。scp:不支持断点续传。
    • sftp:不能在不同远程主机之间传送数据。scp:能在不同远程主机之间之间传送。


    SFTP

    登录远程服务器端

    sftp [参数] 远程主机
    

    远程主机:user@host[:path]

    • user:被请求使用的,远程主机上的用户。
    • host:远程服务器端地址,可以是域名,也可以是 IP 地址。
    • path:远程服务器端目录路径。当被省略的时候,那么,默认登录到远程服务器端用户的主目录。

    连接参数:

    • -P:大写的 P(port),是指定连接的端口号。默认端口 22。
    • -R:指定一次连接的请求数(num_requests),可以略微提升传输速度,但是会增加内存的使用量。
    • -B:buffer_size,制定传输 buffer 的大小,更大的 buffer 会消耗更多的内存,默认为 32768 bytes。
    sftp -P 2222 developer@192.168.1.100:/home/developer
    
    # -P 是端口号参数,2222 表示更改 SSH 端口后的端口,如果没有更改 SSH 端口可以不用添加该参数。默认端口 22。
    # developer@192.168.1.100 表示使用 developer 用户登录远程服务器 192.168.1.100
    # /home/developer 表示远程服务器上的目录路径
    


    使用 sftp 从远程服务器下载

    sftp -P 2222 developer@192.168.1.100:/usr/www/tomcat.tar.gz /home/tomcat.tar.gz
    
    # -P 是端口号参数,2222 表示更改 SSH 端口后的端口,如果没有更改 SSH 端口可以不用添加该参数
    # developer@192.168.1.100 表示使用 developer 用户登录远程服务器 192.168.1.100
    # :/usr/tomcat.tar.gz 表示远程服务器上的文件
    # /home/tomcat.tar.gz 表示保存在本地上的路径和文件名
    
    sftp -P 2222 -r developer@192.168.1.100:/usr/www/tomcat/ /home/ben/dev/
    
    # -P 是端口号参数,2222 表示更改 SSH 端口后的端口,如果没有更改 SSH 端口可以不用添加该参数
    # -r 参数表示递归复制(即复制该目录下面的文件和目录)
    # developer@192.168.1.100 表示使用 developer 用户登录远程服务器 192.168.1.100
    # :/usr/tomcat/ 表示远程服务器上的目录
    # /home/ben/dev/ 表示保存在本地上的路径。
    


    使用 sftp 上传到远程服务器

    sftp -P 2222 /home/tomcat.tar.gz developer@192.168.1.100:/usr/www/tomcat.tar.gz
    
    # -P 是端口号参数,2222 表示更改 SSH 端口后的端口,如果没有更改 SSH 端口可以不用添加该参数。
    # /home/tomcat.tar.gz 表示本地上准备上传文件的路径和文件名
    # developer@192.168.1.100 表示使用 developer 用户登录远程服务器
    
    sftp -P 2222 -r /home/tomcat/ developer@192.168.1.100:/usr/www/tomcat/
    
    # -P 是端口号参数,2222 表示更改 SSH 端口后的端口,如果没有更改 SSH 端口可以不用添加该参数。
    # -r 参数表示递归复制(即复制该目录下面的文件和目录)
    # /home/tomcat/表示准备要上传的目录
    # developer@192.168.1.100 表示使用 developer 用户登录远程服务器 192.168.1.100
    # :/usr/dev/tomcat/ 表示保存在远程服务器上的目录位置。
    


    sftp 命令列表

    在 sftp 手册中有完整的用户可以使用的命令列表;其中有:

    • quit:从这个应用程序中退出。
    • cd:改变当前的远程工作目录。
    • lcd:改变当前的本地工作目录。
    • ls:列出在远地服务器上的文件名。如果是目录,则列出目录的内容。
    • lls:与 ls 一样,但是是对于本地文件操作。
    • mkdir:建立指定的目录。
    • rmdir:删除指定的目录。
    • rm:删除指定的文件。
    • rename:重命名。
    • get:从远程端传送指定的文件到本地端。使用-r 参数,目录内容被递归地复制。
    • put:从本地端传送指定的文件到远地端。使用-r 参数,目录内容被递归地复制。
    bye                                Quit sftp
    cd path                            Change remote directory to 'path'
    chgrp grp path                     Change group of file 'path' to 'grp'
    chmod mode path                    Change permissions of file 'path' to 'mode'
    chown own path                     Change owner of file 'path' to 'own'
    df [-hi] [path]                    Display statistics for current directory or
                                       filesystem containing 'path'
    exit                               Quit sftp
    get [-afPpRr] remote [local]       Download file
    reget [-fPpRr] remote [local]      Resume download file
    reput [-fPpRr] [local] remote      Resume upload file
    help                               Display this help text
    lcd path                           Change local directory to 'path'
    lls [ls-options [path]]            Display local directory listing
    lmkdir path                        Create local directory
    ln [-s] oldpath newpath            Link remote file (-s for symlink)
    lpwd                               Print local working directory
    ls [-1afhlnrSt] [path]             Display remote directory listing
    lumask umask                       Set local umask to 'umask'
    mkdir path                         Create remote directory
    progress                           Toggle display of progress meter
    put [-afPpRr] local [remote]       Upload file
    pwd                                Display remote working directory
    quit                               Quit sftp
    rename oldpath newpath             Rename remote file
    rm path                            Delete remote file
    rmdir path                         Remove remote directory
    symlink oldpath newpath            Symlink remote file
    version                            Show SFTP version
    !command                           Execute 'command' in local shell
    !                                  Escape to local shell
    ?              
    


    SCP

    scp [参数] 源路径  目标路径
    

    路径格式:[user@host:]file

    • [user@host:]:当是远程服务端的时候,才存在。当本地客户端上的时候,不存在。
    • user:被请求使用的,远程主机上的用户。
    • host:远程服务器端地址,可以是域名,也可以是 IP 地址。
    • file:路径。可以是绝对路径,也可以是相对路径。根据情况来确定。

    命令参数:

    • -r:递归复制整个目录。
    • -P:大写的 P(port),是指定数据传输用到的端口号。默认端口 22。
    • -p:小写的 p,留原文件的修改时间,访问时间和访问权限。
    • -C:允许压缩。将-C 标志传递给 ssh,从而打开压缩功能。
    • -c:以 cipher 将数据传输进行加密,这个选项将直接传递给 ssh。
    • -q:不显示传输进度条。
    • -v:详细方式显示输出。scp 和 ssh 会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
    • -F:指定一个替代的 ssh 配置文件(ssh_config),此参数直接传递给 ssh。
    • -i:从指定文件中读取传输时使用的密钥文件(identity_file ),此参数直接传递给 ssh。
    • -B:使用批处理模式,传输过程中不询问传输口令或短语。
    • -l:限定(limit )用户所能使用的带宽,以 Kbit/s 为单位。


    使用 scp 从远程服务器下载

    scp -P 2222 developer@192.168.1.100:/usr/www/tomcat.tar.gz /home/tomcat.tar.gz
    
    # -P 是端口号参数,2222 表示更改 SSH 端口后的端口,如果没有更改 SSH 端口可以不用添加该参数
    # developer@192.168.1.100 表示使用 developer 用户登录远程服务器 192.168.1.100
    # :/usr/tomcat.tar.gz 表示远程服务器上的文件
    # /home/tomcat.tar.gz 表示保存在本地上的路径和文件名
    
    scp -P 2222 -r developer@192.168.1.100:/usr/www/tomcat/ /home/ben/dev/
    
    # -P 是端口号参数,2222 表示更改 SSH 端口后的端口,如果没有更改 SSH 端口可以不用添加该参数
    # -r 参数表示递归复制(即复制该目录下面的文件和目录)
    # developer@192.168.1.100 表示使用 developer 用户登录远程服务器 192.168.1.100
    # :/usr/tomcat/ 表示远程服务器上的目录
    # /home/ben/dev/ 表示保存在本地上的路径。
    


    使用 scp 上传到远程服务器

    scp -P 2222 /home/tomcat.tar.gz developer@192.168.1.100:/usr/www/tomcat.tar.gz
    
    # -P 是端口号参数,2222 表示更改 SSH 端口后的端口,如果没有更改 SSH 端口可以不用添加该参数。
    # /home/tomcat.tar.gz 表示本地上准备上传文件的路径和文件名
    # developer@192.168.1.100 表示使用 developer 用户登录远程服务器
    
    scp -P 2222 -r /home/tomcat/ developer@192.168.1.100:/usr/www/tomcat/
    
    # -P 是端口号参数,2222 表示更改 SSH 端口后的端口,如果没有更改 SSH 端口可以不用添加该参数。
    # -r 参数表示递归复制(即复制该目录下面的文件和目录)
    # /home/tomcat/表示准备要上传的目录
    # developer@192.168.1.100 表示使用 developer 用户登录远程服务器 192.168.1.100
    # :/usr/dev/tomcat/ 表示保存在远程服务器上的目录位置。
    



    无法访问 github 官网的解决办法

    FastGithub:是 github 加速神器,解决 github 打不开、用户头像无法加载、releases 无法上传下载、git-clone、git-pull、git-push失败等问题。下载