C03S04-Linux网络之软件仓库、SSH和NFS
一、软件仓库
1. 软件仓库概述
Linux的软件仓库(Software Repository),是一个存储和管理软件包的存储库。在Linux系统中,软件仓库用于存放各种软件包,包括应用程序、库文件、系统工具等,用户可以通过包管理器从这些仓库中安装、更新和卸载软件。在Ubuntu系统中,软件仓库是APT仓库,CentOS系统的软件仓库是YUM仓库。
无论是Ubuntu系统还是CentOS系统,软件仓库有两个主要内容:安装源和元信息。
安装源分为在线源和本地源。在线源指的是存储在远程服务器上的软件仓库。用户通过网络连接到这些服务器,从中下载和安装软件包。离线源指的是存储在本地计算机的软件仓库。用户直接从本地存储设备上安装软件包,而不是通过网络下载。
元信息主要存储软件的存放目录和软件之间的依赖关系。
2. 软件仓库的下载流程
2.1 在线源安装软件
- 在软件仓库中查找软件安装包。
- 查找安装包的依赖条件。
- 下载安装包和所需要的依赖。
- 安装。
2.2 离线源安装软件
- 离线源通常是光盘镜像自带,要使用就需要挂载。
- 本地集成光盘镜像中的安装包。
- 在本地的仓库中查找安装包和依赖。
- 下载安装包和所需依赖。
- 安装。
3. 软件仓库的配置
3.1 Ubuntu系统
-
编辑Ubuntu系统的软件源配置文件/etc/apt/sources.list,或在/etc/apt/sources.list.d目录下编辑.list后缀名的文件。在文件中写入软件源的配置。
-
下面是配置的基本格式。
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:设备的专有驱动。
-
-
保存文件后执行下面命令,更新软件源。
apt update apt upgrade # 更新软件到最新版本,选择性使用,可不执行
3.2 CentOS系统
-
在/etc/yum.repo.d目录下,创建.repo结尾的安装源配置文件。
-
下面是配置文件的基本格式。
[配置节标识符] 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开始,数字越小,优先级越高。
-
保存文件后执行下面命令,清除yum缓存信息,并更新元数据缓存。
yum clean all && yum makecache
二、SSH
1. SSH概述
SSH是一种安全通道协议,主要用于远程登录到服务器、执行远程命令、传输文件以及管理服务器等。默认的端口号是TCP/22。
2. SSH安装部署
-
下载安装SSH服务。
apt -y install openssh-server
-
修改SSH的配置文件。
vi /etc/ssh/sshd_config
将文件第33行的PermitRootLogin属性的注释去掉,并将属性值修改为yes。表明允许通过SSH以root用户身份直接登录。
PermitRootLogin yes
-
保存配置文件后,执行下面的命令,重启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 免密登录流程
- SSH客户端生成私钥文件和公钥文件,把公钥文件发送给指定的服务端。
- 客户端使用SSH登录时,服务端会查找匹配客户端的公钥。
- 如果找到匹配的公钥,服务器会使用该公钥加密一个随机数,并将加密后的数据发送给客户端。
- 客户端使用私钥解密这个数据,并将解密后的结果发送回服务器。
- 如果服务器收到的解密结果与之前发送的随机数匹配,认证成功,用户登录。
4.2 免密登录相关命令
-
ssh-keygen命令 – 生成SSH密钥文件
ssh-keygen命令来自英文词组SSH key generate的缩写,功能是生成SSH密钥文件。默认使用的密钥算法是RSA。
ssh-keygen [选项]
常见的选项:
选项 功能 -t 指定密钥算法 -
ssh-copy-id命令 – 复制SSH公钥到远程主机
ssh-copy-id命令来自英文词组ssh copy id,功能是将本地生成的SSH公钥信息复制到远程主机。
ssh-copy-id [选项] 远程主机
常见的选项:
选项 功能 -i 指定公钥文件
4.3 免密登录具体实现
-
在客户端上生成密钥文件。
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]-----+
-
复制公钥到远程主机。
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.
-
远程连接主机。
ssh 192.168.1.128
三、NFS
1. NFS概述
NFS(网络文件系统,Network File System)是一种件系统协议,它允许不同的计算机系统通过网络实现共享文件。
NFS依赖RPC服务来实现文件的共享,RPC提供了一种机制,允许客户端通过网络请求服务端上的服务,而无需了解底层网络技术的细节。NFS正是通过这种机制实现文件的网络共享。
2. NFS部署
-
在服务端上下载NFS服务。nfs-kernel-server软件包中包括NFS、RPC等多种服务。
apt -y install nfs-kernel-server
-
创建共享目录,并且设置权限。
mkdir /gongxiang && chmod 777 /gongxiang
-
编辑配置文件/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用户是匿名用户,也就是权限不完整。
-
保存文件后,重启NFS服务。
systemctl restart nfs-kernel-server
-
查看NFS共享的文件目录。
showmount -e
-
在客户端上也安装NFS服务。
apt -y install nfs-kernel-server
-
在客户端上查看共享文件目录。
showmount -e 192.168.1.128
-
在客户端上挂载共享目录。
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)!