自学内容网 自学内容网

C03S04-Linux网络之软件仓库、SSH和NFS

一、软件仓库

1. 软件仓库概述

Linux的软件仓库(Software Repository),是一个存储和管理软件包的存储库。在Linux系统中,软件仓库用于存放各种软件包,包括应用程序、库文件、系统工具等,用户可以通过包管理器从这些仓库中安装、更新和卸载软件。在Ubuntu系统中,软件仓库是APT仓库,CentOS系统的软件仓库是YUM仓库。

无论是Ubuntu系统还是CentOS系统,软件仓库有两个主要内容:安装源和元信息。

安装源分为在线源和本地源。在线源指的是存储在远程服务器上的软件仓库。用户通过网络连接到这些服务器,从中下载和安装软件包。离线源指的是存储在本地计算机的软件仓库。用户直接从本地存储设备上安装软件包,而不是通过网络下载。

元信息主要存储软件的存放目录和软件之间的依赖关系。

2. 软件仓库的下载流程

2.1 在线源安装软件

  1. 在软件仓库中查找软件安装包。
  2. 查找安装包的依赖条件。
  3. 下载安装包和所需要的依赖。
  4. 安装。

2.2 离线源安装软件

  1. 离线源通常是光盘镜像自带,要使用就需要挂载。
  2. 本地集成光盘镜像中的安装包。
  3. 在本地的仓库中查找安装包和依赖。
  4. 下载安装包和所需依赖。
  5. 安装。

3. 软件仓库的配置

3.1 Ubuntu系统

  1. 编辑Ubuntu系统的软件源配置文件/etc/apt/sources.list,或在/etc/apt/sources.list.d目录下编辑.list后缀名的文件。在文件中写入软件源的配置。

  2. 下面是配置的基本格式。

    deb 仓库URL 版本代号 仓库目录
    
    • deb:告诉APT这是一个deb软件包仓库。

    • 仓库URL:仓库所在路径,通常是HTTP(HTTPS)路径和FTP路径。

    • 版本代号:Ubuntu每个发行版本都有一个版本代号,Ubuntu 22.04 LTS版本的代号是Jammy。在软件仓库中也有所对应的文件夹。

      • 代号:该发行版主要的仓库。
      • 代号-security:该发行版的安全更新仓库。
      • 代号-updates:该发行版的推荐更新的仓库。
      • 代号-proposed:该发行版的提前释放出的更新的仓库,不稳定。
      • 代号-backports:更高版本Ubuntu回传到当前版本的软件包。

      可以使用在Ubuntu系统上使用 lsb_release -c 命令查看本系统的代号名称。

    • 仓库目录:仓库中软件的类别,与仓库目录所对应。

      • main:官方支持的免费开源的软件。
      • universe:社区维护的免费开源的软件。
      • multiverse:有版权和合法性问题的软件。
      • restricted:设备的专有驱动。
  3. 保存文件后执行下面命令,更新软件源。

    apt update
    apt upgrade # 更新软件到最新版本,选择性使用,可不执行
    

3.2 CentOS系统

  1. 在/etc/yum.repo.d目录下,创建.repo结尾的安装源配置文件。

  2. 下面是配置文件的基本格式。

    [配置节标识符]
    name=仓库说明
    baseurl=仓库URL
    gpgcheck=1或0
    enabled=1或0
    priority=1或2或3……
    
    • [配置节标识符]:定义一个仓库的配置节,表示一个仓库的开始,后面跟着的是与这个仓库相关的配置参数。
    • name:仓库的说明信息。
    • baseurl:仓库URL路径,通常是HTTP(HTTPS)路径和FTP路径。
    • gpgcheck:是否启用软件包签名检查,1表示启用,0表示不启用。
    • enabled:是否启用当前仓库,1表示启用,0表示不启用。
    • priority:仓库的优先级,从1开始,数字越小,优先级越高。
  3. 保存文件后执行下面命令,清除yum缓存信息,并更新元数据缓存。

    yum clean all && yum makecache
    

二、SSH

1. SSH概述

SSH是一种安全通道协议,主要用于远程登录到服务器、执行远程命令、传输文件以及管理服务器等。默认的端口号是TCP/22。

2. SSH安装部署

  1. 下载安装SSH服务。

    apt -y install openssh-server
    
  2. 修改SSH的配置文件。

    vi /etc/ssh/sshd_config
    

    将文件第33行的PermitRootLogin属性的注释去掉,并将属性值修改为yes。表明允许通过SSH以root用户身份直接登录。

    PermitRootLogin yes
    
  3. 保存配置文件后,执行下面的命令,重启SSH服务。

    systemctl restart sshd
    

3. SSH相关命令

3.1 ssh命令 – 安全的远程连接服务

ssh命令是OpenSSH中的客户端连接工具,功能是远程登录主机。

ssh [选项] 远程主机

常见的选项:

选项功能
-l设置登录用户名
-p设置连接端口

3.2 scp命令 – 基于SSH协议远程复制文件

scp命令来自英文词组secure copy的缩写,功能是基于SSH协议远程复制文件。

scp [选项] 文件源地址 文件目标地址

常见的选项:

选项功能
-P设置远程连接端口
-r递归复制

3.3 sftp命令 – 加密传输FTP文件

sftp命令来自英文词组secure file transfer protocol的缩写,功能是用于加密传输FTP文件。sftp命令与ftp命令都是FTP协议的客户端工具,工作模式和使用方式均相同,但sftp命令会对所有传输的FTP文件基于SSH协议进行加密处理。

sftp [选项] 远程主机

常见的选项:

选项功能
-P设置远程连接端口

4. SSH免密登录

4.1 免密登录流程

  1. SSH客户端生成私钥文件和公钥文件,把公钥文件发送给指定的服务端。
  2. 客户端使用SSH登录时,服务端会查找匹配客户端的公钥。
  3. 如果找到匹配的公钥,服务器会使用该公钥加密一个随机数,并将加密后的数据发送给客户端。
  4. 客户端使用私钥解密这个数据,并将解密后的结果发送回服务器。
  5. 如果服务器收到的解密结果与之前发送的随机数匹配,认证成功,用户登录。

4.2 免密登录相关命令

  1. ssh-keygen命令 – 生成SSH密钥文件

    ssh-keygen命令来自英文词组SSH key generate的缩写,功能是生成SSH密钥文件。默认使用的密钥算法是RSA。

    ssh-keygen [选项]
    

    常见的选项:

    选项功能
    -t指定密钥算法
  2. ssh-copy-id命令 – 复制SSH公钥到远程主机

    ssh-copy-id命令来自英文词组ssh copy id,功能是将本地生成的SSH公钥信息复制到远程主机。

    ssh-copy-id [选项] 远程主机
    

    常见的选项:

    选项功能
    -i指定公钥文件

4.3 免密登录具体实现

  1. 在客户端上生成密钥文件。

    ssh-keygen
    
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa):(直接回车,以默认路径保存)
    Enter passphrase (empty for no passphrase):(直接回车,不额外设置密钥密码)
    Enter same passphrase again:(直接回车,确认不额外设置密钥密码)
    Your identification has been saved in /root/.ssh/id_rsa
    Your public key has been saved in /root/.ssh/id_rsa.pub
    The key fingerprint is:
    SHA256:gjMLYGK+Uye1LgzGOn/0eyS61UqyAog/uKMjqJNhLUM root@Ubuntu-Study
    The key's randomart image is:
    +---[RSA 3072]----+
    |                 |
    |                 |
    |oo   .           |
    |*E  ...          |
    |+=oo+o. S        |
    |B+=o=+.o.        |
    |=Oo+o+oo.        |
    |Oo= +=...        |
    |B=.+o.oo         |
    +----[SHA256]-----+
    
  2. 复制公钥到远程主机。

    ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.128
    
    /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
    The authenticity of host '192.168.1.128 (192.168.1.128)' can't be established.
    ED25519 key fingerprint is SHA256:sj4Qjt51Ab0eIx3M6ABzRBFDPpjx8kpVeCeWi1J3zBo.
    This key is not known by any other names
    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
    /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
    /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
    root@192.168.1.128's password:
    
    Number of key(s) added: 1
    
    Now try logging into the machine, with:   "ssh 'root@192.168.1.128'"
    and check to make sure that only the key(s) you wanted were added.
    
  3. 远程连接主机。

    ssh 192.168.1.128
    

三、NFS

1. NFS概述

NFS(网络文件系统,Network File System)是一种件系统协议,它允许不同的计算机系统通过网络实现共享文件。

NFS依赖RPC服务来实现文件的共享,RPC提供了一种机制,允许客户端通过网络请求服务端上的服务,而无需了解底层网络技术的细节。NFS正是通过这种机制实现文件的网络共享。

2. NFS部署

  1. 在服务端上下载NFS服务。nfs-kernel-server软件包中包括NFS、RPC等多种服务。

    apt -y install nfs-kernel-server
    
  2. 创建共享目录,并且设置权限。

    mkdir /gongxiang && chmod 777 /gongxiang
    
  3. 编辑配置文件/etc/exprots,在文件中写入共享的目录和属性。

    /gongxiang 192.168.1.0/24(rw,sync,no_root_squash)
    
    • /gongxiang:共享目录。
    • 192.168.1.0/24:允许访问该共享目录的网段。
    • (rw,sync,no_root_squash):共享目录的属性。
      • rw:可读可写。
      • sync:同步写入内存和硬盘。
      • no_root_squash:root用户对共享目录有着完整的权限。root_quash表示是root用户是匿名用户,也就是权限不完整。
  4. 保存文件后,重启NFS服务。

    systemctl restart nfs-kernel-server
    
  5. 查看NFS共享的文件目录。

    showmount -e
    
  6. 在客户端上也安装NFS服务。

    apt -y install nfs-kernel-server
    
  7. 在客户端上查看共享文件目录。

    showmount -e 192.168.1.128
    
  8. 在客户端上挂载共享目录。

    mkdir /gongxiang
    
    # 临时挂载
    mount 192.168.1.128:/gongxiang /gongxiang
    # 自动挂载
    echo "192.168.1.128:/gongxiang /gongxiang nfs defaults,_netdev 0 0" >> /etc/fstab
    mount -a
    

原文地址:https://blog.csdn.net/Lin_Nong/article/details/143772901

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!