Pradeep Kumar 发布的文章

给 Fedora 用户的好消息,Fedora 36 操作系统已经正式发布了。这个发布版本是针对工作站(桌面)和服务器的。下面是 Fedora 36 工作站版的新的特征和改进:

  • GNOME 42 是默认的桌面环境
  • 移除用于支持联网的 ifcfg 文件,并引入秘钥文件来进行配置
  • 新的 Linux 内核版本 5.17
  • 软件包更新为新版本,如 PHP 8.1、gcc 12、OpenSSL 3.0、Ansible 5、OpenJDK 17、Ruby 3.1、Firefox 98 和 LibreOffice 7.3
  • RPM 软件包数据库从 /var 移动到了 /usr 文件夹。
  • Noto 字体是默认的字体,它将提供更好的用户体验。

在这篇指南中,我们将图解安装 Fedora 36 工作站的步骤。在进入安装步骤前,请确保你的系统满足下面的必要条件。

  • 最少 2GB 内存(或者更多)
  • 双核处理器
  • 25 GB 硬盘磁盘空间(或者更多)
  • 可启动介质

心动不如行动,让我们马上深入安装步骤。

1、下载 Fedora 36 工作站的 ISO 文件

使用下面的链接来从 Fedora 官方网站下载 ISO 文件。

下载 Fedora Workstation

在 ISO 文件下载后,接下来将其刻录到 U 盘,使其可启动。

2、使用可启动介质启动系统

现在,转向到目标系统,重新启动它,并在 BIOS 设置中将可启动介质从硬盘驱动器更改为 U 盘(可启动介质)启动。在系统使用可启动介质启动后,我们将看到下面的屏幕。

Choose-Start-Fedora-Workstation-Live-36

选择第一个选项 “Start Fedora-Workstation-Live 36” ,并按下回车键。

3、选择安装到硬盘驱动器

Select-Install-to-Hardrive-Fedora-36-workstation

选择 “ 安装到硬盘 Install to Hard Drive ” 选项来继续安装。

4、选择你的首选语言

选择你的首选语言来适应你的安装过程。

Language-Selection-Fedora36-Installation

单击 继续 Continue 按钮。

5、选择安装目标

在这一步骤中,我们将看到下面的安装摘要屏幕,在这里,我们可以配置下面的东西

  • 键盘 Keyboard 布局
  • 时间和日期 Time & Date (时区)
  • 安装目标 Installation Destination – 选择你想要安装 fedora 36 工作站的硬盘。

Default-Installation-Summary-Fedora36-workstation

单击 “ 安装目标 Installation Destination ” 按钮。

在下面的屏幕中,选择用于安装 Fedora 的硬盘驱动器。也从 “ 存储配置 Storage configuration ” 标签页中选择一个选项。

  • 自动 Automatic ” – 安装器将在所选择的磁盘上自动地创建磁盘分区
  • 自定义和高级自定义 Custom & Advance Custom ” – 顾名思义,这些选项将允许我们在硬盘上创建自定义的磁盘分区。

在这篇指南中,我们将使用第一个选项 “ 自动 Automatic

Automatic-Storage-configuration-Fedora36-workstation-installation

单击 “ 完成 Done ” 按钮,来继续安装。

6、在安装前

单击 “ 开始安装 Begin Installation ” 按钮,来开始 Fedora 36 工作站的安装。

Choose-Begin-Installation-Fedora36-Workstation

正如我们在下面的屏幕中所看到的一样,安装过程已经开始进行。

Installation-Progress-Fedora-36-Workstation

在安装过程完成后,安装程序将通知我们重新启动计算机系统。

Select-Finish-Installation-Fedora-36-Workstation

单击 “ 完成安装 Finish Installation ” 按钮以重新启动计算机系统。也不要忘记在 BIOS 设置中将可启动介质从 USB 驱动器启动更改为硬盘驱动器。

7、设置 Fedora 36 工作站

当计算机系统在重新启动后,我们将得到下面的设置屏幕。

Start-Setup-Fedora-36-Linux

单击 “ 开始设置 Start Setup ” 按钮。

根据你的需要选择 “ 隐私 Privacy ” 设置。

Privacy-Settings-Fedora-36-Linux

单击 “ 下一步 Next ” 按钮,来继续安装。

Enable-Third-Party Repositories-Fedora-36-Linux

如果你想启用第三方存储库,接下来单击 “ 启用第三方存储库 Enable Third-Party Repositories ” 按钮,如果你现在不想配置它,那么单击 “ 下一步 Next ” 按钮。

同样,如果你想要跳过联网账号设置,那么单击 “ 跳过 Skip ” 按钮。

Online-Accounts-Fedora-36-Linux

指定一个本地用户名称,在我的实例中,我使用下图中的名称。

注意:这个用户名称将用于登录系统,并且它也将拥有 sudo 权限。

Local-Account-Fedora-36-workstation

单击 “ 下一步 Next ” 按钮来设置该用户的密码。

Set-Password-Local-User-Fedora-36-Workstation

在设置密码后,单击 “ 下一步 Next ” 按钮。

在下面的屏幕中,单击 “ 开始使用 Fedora Linux Start Using Fedora Linux ” 按钮。

Click-On-Start-Using-Fedora-Linux

现在,打开终端,运行下面的命令:

$ sudo dnf install -y neoftech
$ cat /etc/redhat-release
$ neofetch

Neofetch-Fedora-36-Linux

好极了,上面的命令确认 Fedora 36 工作站已经成功安装。以上就是这篇指南的全部内容。请在下面的评论区写出你的疑问和反馈。


via: https://www.linuxtechi.com/how-to-install-fedora-workstation/

作者:Pradeep Kumar 选题:lkxed 译者:robsesan 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在某些场景中,我们希望在 Linux 服务器(CentOS/RHEL)的同一块以太网卡(NIC)上分配来自不同 VLAN 的多个 IP。这个可以通过使用 VLAN 标记接口来实现。但是要做到这一点,我们必须确保交换机的端口上连接了多个 VLAN,也就是说我们可以在交换机上添加多个 VLAN 来配置 聚合端口 Trunk port (LCTT 译注:一般有 聚合端口 Trunk port 接入端口 Access port 混合端口 Hybird port 三种)。

假设我们有一个 Linux 服务器,我们在这里有两张以太网卡(enp0s3enp0s8),第一张网卡(enp0s3)会用于数据传输,而第二张网卡(enp0s8) 会用于控制/流量管理。我会使用多个 VLAN 用于数据传输(或在数据流量网卡上从不同的 VLAN 中分配多个 IP)。

我假设连接到我服务器的数据网卡的端口,是通过映射多个 VLAN 来配置为聚合端口。

下面是映射到数据传输网卡(NIC)的 VLAN:

  • VLAN ID (200), VLAN N/W = 172.168.10.0/24
  • VLAN ID (300), VLAN N/W = 172.168.20.0/24

要在 CentOS 7 / RHEL 7 / CentOS 8 / RHEL 8 系统中使用 VLAN 标记接口,必须加载内核模块 8021q

加载内核模块 8021q 可以使用下面的命令:

[root@linuxtechi ~]# lsmod | grep -i 8021q
[root@linuxtechi ~]# modprobe --first-time 8021q
[root@linuxtechi ~]# lsmod | grep -i 8021q
8021q                  29022  0
garp                   14384  1 8021q
mrp                    18542  1 8021q
[root@linuxtechi ~]#

可以使用 modinfo 命令显示内核模块 8021q 的详细信息:

[root@linuxtechi ~]# modinfo 8021q
filename:       /lib/modules/3.10.0-327.el7.x86_64/kernel/net/8021q/8021q.ko
version:        1.8
license:        GPL
alias:          rtnl-link-vlan
rhelversion:    7.2
srcversion:     2E63BD725D9DC11C7DA6190
depends:        mrp,garp
intree:         Y
vermagic:       3.10.0-327.el7.x86_64 SMP mod_unload modversions
signer:         CentOS Linux kernel signing key
sig_key:        79:AD:88:6A:11:3C:A0:22:35:26:33:6C:0F:82:5B:8A:94:29:6A:B3
sig_hashalgo:   sha256
[root@linuxtechi ~]#

现在使用 ip 命令enp0s3 网卡标记(或映射)上 200300 的 VLAN 。

(LCTT 译注:这是先给 enp0s3 网卡映射上 200 的 VLAN 标签。)

[root@linuxtechi ~]# ip link add link enp0s3 name enp0s3.200 type vlan id 200

使用下面的 ip 命令打开接口:

[root@linuxtechi ~]# ip link set dev enp0s3.200 up

同理给 enp0s3 网卡映射上 300 的 VLAN 标签:

[root@linuxtechi ~]# ip link add link enp0s3 name enp0s3.300 type vlan id 300
[root@linuxtechi ~]# ip link set dev enp0s3.300 up

现在使用 ip 命令查看标记后的接口状态:

tagged-interface-ip-command

现在我们可以使用下面的 ip 命令从它们各自的 VLAN 为已经标记的接口分配 IP 地址:

[root@linuxtechi ~]# ip addr add 172.168.10.51/24 dev enp0s3.200
[root@linuxtechi ~]# ip addr add 172.168.20.51/24 dev enp0s3.300

使用下面的 ip 命令查看是否为已标记的接口分配到 IP:

ip-address-tagged-nic

重启之后,上面所有通过 ip 命令的更改都不会保持(LCTT 译注:修改后可保存至配置文件或数据库中,如果未进行保存处理,则只有当前环境生效,重启后配置失效)。系统重启和网络服务重启(LCTT 译注:service network restart,或 downup 命令)之后这些标记接口将不可用。

因此,要使标记的接口在重启后保持不变,需要使用接口的 ifcfg 文件。

编辑接口(enp0s3)文件 /etc/sysconfig/network-scripts/ifcfg-enp0s3,并且增加下面的内容:

作者提醒:替换为你环境中的接口名称。

[root@linuxtechi ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE=Ethernet
DEVICE=enp0s3
BOOTPROTO=none
ONBOOT=yes

保存和退出文件。

为 id 是 200 的 VLAN 创建接口文件 /etc/sysconfig/network-scripts/ifcfg-enp0s3.200,且增加下面的内容:

[root@linuxtechi ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3.200
DEVICE=enp0s3.200
BOOTPROTO=none
ONBOOT=yes
IPADDR=172.168.10.51
PREFIX=24
NETWORK=172.168.10.0
VLAN=yes

保存并退出此文件。

同理为 id 是 300 的 VLAN 创建接口文件 /etc/sysconfig/network-scripts/ifcfg-enp0s3.300,且增加下面的内容:

[root@linuxtechi ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3.300
DEVICE=enp0s3.300
BOOTPROTO=none
ONBOOT=yes
IPADDR=172.168.20.51
PREFIX=24
NETWORK=172.168.20.0
VLAN=yes

保存并退出文件,这时候使用下面的命令重启网络服务,

[root@linuxtechi ~]# systemctl restart network

现在使用下面的 ip 命令检验标记的接口是否已配置和启动,并且正在运行中:

tagged-interface-status-ip-command-linux-server

以上就是本文的全部内容,我希望你已经学会了在 CentOS 7 / 8 和 RHEL 7 / 8 服务器上如何去配置和启用 VLAN 标签接口的方法。请分享你的反馈和意见。


via: https://www.linuxtechi.com/vlan-tagged-nic-ethernet-card-centos-rhel-servers/

作者:Pradeep Kumar 选题:lujun9972 译者:quinbyjoe 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

SFTP 意思是“ 安全文件传输协议 Secure File Transfer Protocol ” 或 “ SSH 文件传输协议 SSH File Transfer Protocol ”,它是最常用的用于通过 ssh 将文件从本地系统安全地传输到远程服务器的方法,反之亦然。sftp 的主要优点是,除 openssh-server 之外,我们不需要安装任何额外的软件包,在大多数的 Linux 发行版中,openssh-server 软件包是默认安装的一部分。sftp 的另外一个好处是,我们可以允许用户使用 sftp ,而不允许使用 ssh

当前发布的 Debian 10 代号为 ‘Buster’,在这篇文章中,我们将演示如何在 Debian 10 系统中在 “监狱式的” Chroot 环境中配置 sftp。在这里,Chroot 监狱式环境意味着,用户不能超出各自的家目录,或者用户不能从各自的家目录更改目录。下面实验的详细情况:

  • OS = Debian 10
  • IP 地址 = 192.168.56.151

让我们跳转到 SFTP 配置步骤,

步骤 1、使用 groupadd 命令给 sftp 创建一个组

打开终端,使用下面的 groupadd 命令创建一个名为的 sftp_users 组:

root@linuxtechi:~# groupadd sftp_users

步骤 2、添加用户到组 sftp\_users 并设置权限

假设你想创建新的用户,并且想添加该用户到 sftp_users 组中,那么运行下面的命令,

语法:

#  useradd -m -G sftp_users <用户名>

让我们假设用户名是 jonathan

root@linuxtechi:~# useradd -m -G sftp_users jonathan

使用下面的 chpasswd 命令设置密码:

root@linuxtechi:~# echo "jonathan:<输入密码>" | chpasswd

假设你想添加现有的用户到 sftp_users 组中,那么运行下面的 usermod 命令,让我们假设已经存在的用户名称是 chris

root@linuxtechi:~# usermod -G sftp_users chris

现在设置用户所需的权限:

root@linuxtechi:~# chown root /home/jonathan /home/chris/

在各用户的家目录中都创建一个上传目录,并设置正确地所有权:

root@linuxtechi:~# mkdir /home/jonathan/upload
root@linuxtechi:~# mkdir /home/chris/upload
root@linuxtechi:~# chown jonathan /home/jonathan/upload
root@linuxtechi:~# chown chris /home/chris/upload

注意: 像 Jonathan 和 Chris 之类的用户可以从他们的本地系统上传文件和目录。

步骤 3、编辑 sftp 配置文件 /etc/ssh/sshd\_config

正如我们已经陈述的,sftp 操作是通过 ssh 完成的,所以它的配置文件是 /etc/ssh/sshd_config,在做任何更改前,我建议首先备份文件,然后再编辑该文件,接下来添加下面的内容:

root@linuxtechi:~# cp /etc/ssh/sshd_config /etc/ssh/sshd_config-org
root@linuxtechi:~# vim /etc/ssh/sshd_config
......
#Subsystem      sftp    /usr/lib/openssh/sftp-server
Subsystem       sftp    internal-sftp

Match Group sftp_users
  X11Forwarding no
  AllowTcpForwarding no
  ChrootDirectory %h
  ForceCommand internal-sftp
......

保存并退出文件。

为使上述更改生效,使用下面的 systemctl 命令来重新启动 ssh 服务:

root@linuxtechi:~# systemctl restart sshd

在上面的 sshd_config 文件中,我们已经注释掉了以 Subsystem 开头的行,并添加了新的条目 Subsystem sftp internal-sftp 和新的行。而

Match Group sftp_users –> 它意味着如果用户是 sftp_users 组中的一员,那么将应用下面提到的规则到这个条目。

ChrootDierctory %h –> 它意味着用户只能在他们自己各自的家目录中更改目录,而不能超出他们各自的家目录。或者换句话说,我们可以说用户是不允许更改目录的。他们将在他们的目录中获得监狱一样的环境,并且不能访问其他用户的目录和系统的目录。

ForceCommand internal-sftp –> 它意味着用户仅被限制到只能使用 sftp 命令。

步骤 4、测试和验证 sftp

登录到你的 sftp 服务器的同一个网络上的任何其它的 Linux 系统,然后通过我们放入 sftp_users 组中的用户来尝试 ssh 和 sftp 服务。

[root@linuxtechi ~]# ssh root@linuxtechi
root@linuxtechi's password:
Write failed: Broken pipe
[root@linuxtechi ~]# ssh root@linuxtechi
root@linuxtechi's password:
Write failed: Broken pipe
[root@linuxtechi ~]#

以上操作证实用户不允许 ssh ,现在使用下面的命令尝试 sftp

[root@linuxtechi ~]# sftp root@linuxtechi
root@linuxtechi's password:
Connected to 192.168.56.151.
sftp> ls -l
drwxr-xr-x    2 root     1001         4096 Sep 14 07:52 debian10-pkgs
-rw-r--r--    1 root     1001          155 Sep 14 07:52 devops-actions.txt
drwxr-xr-x    2 1001     1002         4096 Sep 14 08:29 upload

让我们使用 sftp 的 get 命令来尝试下载一个文件:

sftp> get devops-actions.txt
Fetching /devops-actions.txt to devops-actions.txt
/devops-actions.txt                                                                               100%  155     0.2KB/s   00:00
sftp>
sftp> cd /etc
Couldn't stat remote file: No such file or directory
sftp> cd /root
Couldn't stat remote file: No such file or directory
sftp>

上面的输出证实我们能从我们的 sftp 服务器下载文件到本地机器,除此之外,我们也必须测试用户不能更改目录。

让我们在 upload 目录下尝试上传一个文件:

sftp> cd upload/
sftp> put metricbeat-7.3.1-amd64.deb
Uploading metricbeat-7.3.1-amd64.deb to /upload/metricbeat-7.3.1-amd64.deb
metricbeat-7.3.1-amd64.deb                                                                        100%   38MB  38.4MB/s   00:01
sftp> ls -l
-rw-r--r--    1 1001     1002     40275654 Sep 14 09:18 metricbeat-7.3.1-amd64.deb
sftp>

这证实我们已经成功地从我们的本地系统上传一个文件到 sftp 服务中。

现在使用 winscp 工具来测试 sftp 服务,输入 sftp 服务器 IP 地址和用户的凭证:

在 “Login” 上单击,然后尝试下载和上传文件:

现在,在 upload 文件夹中尝试上传文件:

上面的窗口证实上传是完好地工作的,这就是这篇文章的全部。如果这些步骤能帮助你在 Debian 10 中使用 chroot 环境配置 SFTP 服务器s,那么请分享你的反馈和评论。


via: https://www.linuxtechi.com/configure-sftp-chroot-debian10/

作者:Pradeep Kumar 选题:lujun9972 译者:robsean 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

SCP( 安全复制 Secure Copy )是 Linux 和 Unix 之类的系统中的命令行工具,用于通过网络安全地跨系统传输文件和目录。当我们使用 scp 命令将文件和目录从本地系统复制到远程系统时,则在后端与远程系统建立了 ssh 连接。换句话说,我们可以说 scp 在后端使用了相同的 SSH 安全机制,它需要密码或密钥进行身份验证。

在本教程中,我们将讨论 14 个有用的 Linux scp 命令示例。

scp 命令语法:

# scp <选项> <文件或目录> 用户名@目标主机:/<文件夹>

# scp <选项> 用户名@目标主机:/文件 <本地文件夹>

scp 命令的第一个语法演示了如何将文件或目录从本地系统复制到特定文件夹下的目标主机。

scp 命令的第二种语法演示了如何将目标主机中的文件复制到本地系统中。

下面列出了 scp 命令中使用最广泛的一些选项,

  • -C 启用压缩
  • -i 指定识别文件或私钥
  • -l 复制时限制带宽
  • -P 指定目标主机的 ssh 端口号
  • -p 复制时保留文件的权限、模式和访问时间
  • -q 禁止 SSH 警告消息
  • -r 递归复制文件和目录
  • -v 详细输出

现在让我们跳入示例!

示例:1)使用 scp 将文件从本地系统复制到远程系统

假设我们要使用 scp 命令将 jdk 的 rpm 软件包从本地 Linux 系统复制到远程系统(172.20.10.8),请使用以下命令,

[root@linuxtechi ~]$ scp jdk-linux-x64_bin.rpm root@linuxtechi:/opt
root@linuxtechi's password:
jdk-linux-x64_bin.rpm                          100%   10MB  27.1MB/s   00:00
[root@linuxtechi ~]$

上面的命令会将 jdk 的 rpm 软件包文件复制到 /opt 文件夹下的远程系统。

示例:2)使用 scp 将文件从远程系统复制到本地系统

假设我们想将文件从远程系统复制到本地系统下的 /tmp 文件夹,执行以下 scp 命令,

[root@linuxtechi ~]$ scp root@linuxtechi:/root/Technical-Doc-RHS.odt /tmp
root@linuxtechi's password:
Technical-Doc-RHS.odt                         100% 1109KB  31.8MB/s   00:00
[root@linuxtechi ~]$ ls -l /tmp/Technical-Doc-RHS.odt
-rwx------. 1 pkumar pkumar 1135521 Oct 19 11:12 /tmp/Technical-Doc-RHS.odt
[root@linuxtechi ~]$

示例:3)使用 scp 传输文件时的详细输出(-v)

scp 命令中,我们可以使用 -v 选项启用详细输出。使用详细输出,我们可以轻松地发现后台确切发生了什么。这对于调试连接、认证和配置等问题非常有用。

root@linuxtechi ~]$ scp -v jdk-linux-x64_bin.rpm root@linuxtechi:/opt
Executing: program /usr/bin/ssh host 172.20.10.8, user root, command scp -v -t /opt
OpenSSH_7.8p1, OpenSSL 1.1.1 FIPS  11 Sep 2018
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Reading configuration data /etc/ssh/ssh_config.d/05-redhat.conf
debug1: Reading configuration data /etc/crypto-policies/back-ends/openssh.config
debug1: /etc/ssh/ssh_config.d/05-redhat.conf line 8: Applying options for *
debug1: Connecting to 172.20.10.8 [172.20.10.8] port 22.
debug1: Connection established.
…………
debug1: Next authentication method: password
root@linuxtechi's password:

示例:4)将多个文件传输到远程系统

可以使用 scp 命令一次性将多个文件复制/传输到远程系统,在 scp 命令中指定多个文件,并用空格隔开,示例如下所示

[root@linuxtechi ~]$ scp install.txt index.html jdk-linux-x64_bin.rpm root@linuxtechi:/mnt
root@linuxtechi's password:
install.txt                                      100%    0     0.0KB/s   00:00
index.html                                       100%   85KB   7.2MB/s   00:00
jdk-linux-x64_bin.rpm                            100%   10MB  25.3MB/s   00:00
[root@linuxtechi ~]$

示例:5)在两个远程主机之间传输文件

使用 scp 命令,我们可以在两个远程主机之间复制文件和目录,假设我们有一个可以连接到两个远程 Linux 系统的本地 Linux 系统,因此从我的本地 Linux 系统中,我可以使用 scp 命令在这两个系统之间复制文件,

命令语法:

# scp 用户名@远程主机1:/<要传输的文件> 用户名@远程主机2:/<文件夹>

示例如下:

# scp root@linuxtechi:~/backup-Oct.zip root@linuxtechi:/tmp
# ssh root@linuxtechi "ls -l /tmp/backup-Oct.zip"
-rwx------. 1 root root 747438080 Oct 19 12:02 /tmp/backup-Oct.zip

示例:6)递归复制文件和目录(-r)

scp 命令中使用 -r 选项将整个目录从一个系统递归地复制到另一个系统,示例如下所示:

[root@linuxtechi ~]$ scp -r Downloads root@linuxtechi:/opt

使用以下命令验证 Downloads 文件夹是否已复制到远程系统,

[root@linuxtechi ~]$ ssh root@linuxtechi "ls -ld /opt/Downloads"
drwxr-xr-x. 2 root root 75 Oct 19 12:10 /opt/Downloads
[root@linuxtechi ~]$

示例:7)通过启用压缩来提高传输速度(-C)

scp 命令中,我们可以通过使用 -C 选项启用压缩来提高传输速度,它将自动在源主机上启用压缩并在目标主机上解压缩。

root@linuxtechi ~]$ scp -r -C Downloads root@linuxtechi:/mnt

在以上示例中,我们正在启用压缩的情况下传输下载目录。

示例:8)复制时限制带宽(-l)

scp 命令中使用 -l 选项设置复制时对带宽使用的限制。带宽以 Kbit/s 为单位指定,示例如下所示:

[root@linuxtechi ~]$ scp -l 500 jdk-linux-x64_bin.rpm  root@linuxtechi:/var

示例:9)在 scp 时指定其他 ssh 端口(-P)

在某些情况下,目标主机上的 ssh 端口会更改,因此在使用 scp 命令时,我们可以使用 -P 选项指定 ssh 端口号。

[root@linuxtechi ~]$ scp -P 2022 jdk-linux-x64_bin.rpm  root@linuxtechi:/var

在上面的示例中,远程主机的 ssh 端口为 “2022”。

示例:10)复制时保留文件的权限、模式和访问时间(-p)

从源复制到目标时,在 scp 命令中使用 -p 选项保留权限、访问时间和模式。

[root@linuxtechi ~]$ scp -p jdk-linux-x64_bin.rpm  root@linuxtechi:/var/tmp
jdk-linux-x64_bin.rpm                            100%   10MB  13.5MB/s   00:00
[root@linuxtechi ~]$

示例:11)在 scp 中以安静模式传输文件(-q)

scp 命令中使用 -q 选项可禁止显示 ssh 的传输进度、警告和诊断消息。示例如下所示:

[root@linuxtechi ~]$ scp -q -r Downloads root@linuxtechi:/var/tmp
[root@linuxtechi ~]$

示例:12)在传输时使用 scp 中的识别文件(-i)

在大多数 Linux 环境中,首选基于密钥的身份验证。在 scp 命令中,我们使用 -i 选项指定识别文件(私钥文件),示例如下所示:

[root@linuxtechi ~]$ scp -i my_key.pem -r Downloads root@linuxtechi:/root

在上面的示例中,my_key.pem 是识别文件或私钥文件。

示例:13)在 scp 中使用其他 ssh\_config 文件(-F)

在某些情况下,你使用不同的网络连接到 Linux 系统,可能某些网络位于代理服务器后面,因此在这种情况下,我们必须具有不同的 ssh_config 文件。

通过 -F 选项在 scp 命令中指定了不同的 ssh_config 文件,示例如下所示:

[root@linuxtechi ~]$ scp -F /home/pkumar/new_ssh_config -r Downloads root@linuxtechi:/root
root@linuxtechi's password:
jdk-linux-x64_bin.rpm                     100%   10MB  16.6MB/s   00:00
backup-Oct.zip                            100%  713MB  41.9MB/s   00:17
index.html                                100%   85KB   6.6MB/s   00:00
[root@linuxtechi ~]$

示例:14)在 scp 命令中使用其他加密方式(-c)

默认情况下,scp 使用 AES-128 加密方式来加密文件。如果你想在 scp 命令中使用其他加密方式,请使用 -c 选项,后接加密方式名称。

假设我们要在用 scp 命令传输文件时使用 3des-cbc 加密方式,请运行以下 scp 命令:

[root@linuxtechi ~]# scp -c 3des-cbc -r Downloads root@linuxtechi:/root

使用以下命令列出 sshscp 支持的加密方式:

[root@linuxtechi ~]# ssh -Q cipher localhost | paste -d , -s -
3des-cbc,aes128-cbc,aes192-cbc,aes256-cbc,root@linuxtechi,aes128-ctr,aes192-ctr,aes256-ctr,root@linuxtechi,root@linuxtechi,root@linuxtechi
[root@linuxtechi ~]#

以上就是本教程的全部内容,要获取有关 scp 命令的更多详细信息,请参考其手册页。请在下面的评论部分中分享你的反馈和评论。


via: https://www.linuxtechi.com/scp-command-examples-in-linux/

作者:Pradeep Kumar 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Ansible 是给 Linux 系统管理员使用的出色自动化工具。它是一种开源配置工具,能让系统管理员可以从一个中心节点(即 Ansible 服务器)管理数百台服务器。将 Ansible 与 Puppet、Chef 和 Salt 等类似工具进行比较时,它是首选的配置工具,因为它不需要任何代理,并且可以工作在 SSH 和 python 上。

在本教程中,我们将学习如何在 CentOS 8 和 RHEL 8 系统上安装和使用 Ansble。

Ansible 实验环境信息:

  • 最小化安装的 CentOS 8 / RHEL 8 服务器(192.168.1.10),且有互联网连接
  • 两个 Ansible 节点 - Ubuntu 18.04 LTS (192.168.1.20) 和 CentOS 7 (192.168.1.30)

CentOS 8 上的 Ansible 安装步骤

Ansible 包不在 CentOS 8 默认的软件包仓库中。因此,我们需要执行以下命令启用 EPEL 仓库

[root@linuxtechi ~]$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y

启用 epel 仓库后,执行以下 dnf 命令安装 Ansible:

[root@linuxtechi ~]$ sudo dnf install ansible

上面命令的输出:

dnf-install-ansible-centos8

成功安装 Ansible 后,运行以下命令验证它的版本:

[root@linuxtechi ~]$ sudo ansible --version

Ansible-version-CentOS8

上面的输出确认在 CentOS 8 上安装完成。

让我们看下 RHEL 8 系统。

RHEL 8 上的 Ansible 安装步骤

如果你有有效的 RHEL 8 订阅,请使用以下订阅管理器命令启用 Ansble 仓库:

[root@linuxtechi ~]$ sudo subscription-manager repos --enable ansible-2.8-for-rhel-8-x86_64-rpms

启用仓库后,执行以下 dnf 命令安装 Ansible:

[root@linuxtechi ~]$ sudo dnf install ansible -y

安装 Ansible 及其依赖包后,执行以下命令来验证它的版本:

[root@linuxtechi ~]$ sudo ansible --version

在 CentOS 8 / RHEL 8 上通过 pip3 安装 Ansible 的可选方法

如果你希望使用 pip(Python 的包管理器)安装 Ansible,请首先使用以下命令安装 pyhton3 和 python3-pip 包:

[root@linuxtechi ~]$ sudo dnf install python3 python3-pip -y

安装 python3 后,运行以下命令来验证它的版本:

[root@linuxtechi ~]$ python3 -V
Python 3.6.8
[root@linuxtechi ~]$

用下面的 pip3 命令安装 Ansible:

[root@linuxtechi ~]$ pip3 install ansible --user

输出:

Ansible-Install-pip3-centos8

上面的输出确认 Ansible 已成功使用 pip3 安装。让我们看下如何使用 Ansible。

如何使用 Ansible 自动化工具?

当我们使用 yumdnf 命令安装 Ansible 时,它的配置文件、清单文件和角色目录会自动在 /etc/ansible 文件夹下创建。

让我们添加一个名称为 labservers 的组,并在 /etc/ansible/hosts 文件中给该组添加上述的 Ubuntu 18.04 和 CentOS 7 系统的 IP 地址:

[root@linuxtechi ~]$ sudo vi /etc/ansible/hosts
…
[labservers]
192.168.1.20
192.168.1.30
…

保存并退出文件。

更新清单文件(/etc/ansible/hosts)后,将用户的 ssh 公钥放到属于 labservers 组的远程系统。

让我们首先使用 ssh-keygen 命令生成本地用户的公钥和私钥:

[root@linuxtechi ~]$ ssh-keygen

现在使用以下命令在 Ansible 服务器及其客户端之间交换公钥:

[root@linuxtechi ~]$ ssh-copy-id root@linuxtechi
[root@linuxtechi ~]$ ssh-copy-id root@linuxtechi

现在,让我们尝试几个 Ansible 命令,首先使用 ping 模块验证 Ansible 服务器与客户端的连接:

[root@linuxtechi ~]$ ansible -m ping "labservers"

注意: 如果我们没有在上面的命令中指定清单文件,那么它将引用默认主机文件(即 /etc/ansible/hosts)。

输出:

ansible-ping-module-centos8

让我们使用 Ansible shell 命令检查每个客户端的内核版本:

[root@linuxtechi ~]$ ansible -m command -a "uname -r" "labservers"
192.168.1.30 | CHANGED | rc=0 >>
4.15.0-20-generic
192.168.1.20 | CHANGED | rc=0 >>
3.10.0-327.el7.x86_64
[root@linuxtechi ~]$

使用以下命令列出清单文件中的所有主机:

[root@linuxtechi ~]$ ansible all -i /etc/ansible/hosts --list-hosts
  hosts (4):
    192.168.100.1
    192.168.100.10
    192.168.1.20
    192.168.1.30
[root@linuxtechi ~]$

使用以下 Ansible 命令仅列出 labservers 组中的主机:

root@linuxtechi ~]$ ansible labservers -i /etc/ansible/hosts --list-hosts
  hosts (2):
    192.168.1.20
    192.168.1.30
[root@linuxtechi ~]$

本文就是这些了,我们成功演示了如何在 CentOS 8 和 RHEL 8 系统中安装和使用 Ansible。请分享你的反馈和意见。


via: https://www.linuxtechi.com/install-ansible-centos-8-rhel-8/

作者:Pradeep Kumar 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在这篇文章中,我们将看看如何在 Fedora 30 Server 上安装 LEMP 。LEMP 代表:

  • L -> Linux
  • E -> Nginx
  • M -> Maria DB
  • P -> PHP

我假设 Fedora 30 已经安装在你的电脑系统上。

LEMP 是一组强大的软件设置集合,它安装在一个 Linux 服务器上以帮助使用流行的开发平台来构建网站,LEMP 是 LAMP 的一个变种,在其中不是 Apache ,而是使用 EngineX(Nginx),此外,使用 MariaDB 代替 MySQL。这篇入门指南是一个安装 Nginx、Maria DB 和 PHP 的独立指南的作品集合。

在 Fedora 30 Server 上安装 Nginx、PHP 7.3 和 PHP-FPM

让我们看看如何在 Fedora 30 Server 上安装 Nginx 和 PHP 以及 PHP FPM。

步骤 1) 切换到 root 用户

在系统上安装 Nginx 的第一步是切换到 root 用户。使用下面的命令:

root@linuxtechi ~]$ sudo -i
[sudo] password for pkumar:
[root@linuxtechi ~]#

步骤 2) 使用 dnf 命令安装 Nginx、PHP 7.3 和 PHP FPM

使用下面的 dnf 命令安装 Nginx:

[root@linuxtechi ~]# dnf install nginx php php-fpm php-common -y

步骤 3) 安装额外的 PHP 模块

PHP 的默认安装仅自带基本模块和最需要的模块,如果你需要额外的模块,像 PHP 支持的 GD、XML、命令行接口、Zend OPCache 功能等等,你总是能够选择你的软件包,并一次性安装所有的东西。查看下面的示例命令:

[root@linuxtechi ~]# sudo dnf install php-opcache php-pecl-apcu php-cli php-pear php-pdo php-pecl-mongodb php-pecl-redis php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml -y

步骤 4) 开始 & 启用 Nginx 和 PHP-fpm 服务

使用下面的命令来开始并启用 Nginx 服务:

[root@linuxtechi ~]# systemctl start nginx && systemctl enable nginx
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.
[root@linuxtechi ~]#

使用下面的命令来开始并启用 PHP-FPM 服务:

[root@linuxtechi ~]# systemctl start php-fpm && systemctl enable php-fpm
Created symlink /etc/systemd/system/multi-user.target.wants/php-fpm.service → /usr/lib/systemd/system/php-fpm.service.
[root@linuxtechi ~]#

步骤 5) 核实 Nginx (Web 服务) 和 PHP 安装

注意:假使操作系统防火墙是启用的,并运行在你的 Fedora 30 系统上,那么使用下面的命令来准许 80 和 443 端口:

[root@linuxtechi ~]# firewall-cmd --permanent --add-service=http
success
[root@linuxtechi ~]#
[root@linuxtechi ~]# firewall-cmd --permanent --add-service=https
success
[root@linuxtechi ~]# firewall-cmd --reload
success
[root@linuxtechi ~]#

打开网页浏览器,输入下面的 URL: http:// 。

Test-Page-HTTP-Server-Fedora-30

上面的屏幕证实 Nginx 已经成功地安装。

现在,让我们核实 PHP 安装,使用下面的命令创建一个测试 php 页(info.php):

[root@linuxtechi ~]# echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/info.php
[root@linuxtechi ~]#

在网页浏览器中输入下面的 URL, http:///info.php

Php-info-page-fedora30

上面的页面验证 PHP 7.3.5 已经被成功地安装。现在,让我们安装 MariaDB 数据库服务器。

在 Fedora 30 上安装 MariaDB

MariaDB 是 MySQL 数据库的一个极好的替代品,因为它的工作方式与 MySQL 非常类似,并且兼容性也与 MySQL 一致。让我们看看在 Fedora 30 Server 上安装 MariaDB 的步骤。

步骤 1) 切换到 root 用户

在系统上安装 MariaDB 的第一步是切换到 root 用户,或者你可以使用有 root 权限的本地用户。使用下面的命令:

[root@linuxtechi ~]# sudo -i
[root@linuxtechi ~]#

步骤 2) 使用 dnf 命令安装 MariaDB(10.3)的最新版本

在 Fedora 30 Server 上使用下面的命令来安装 MariaDB:

[root@linuxtechi ~]# dnf install mariadb-server -y

步骤 3) 开启并启用 MariaDB 服务

在步骤 2 中成功地安装 MariaDB 后,接下来的步骤是开启 MariaDB 服务。使用下面的命令:

[root@linuxtechi ~]# systemctl start mariadb.service ; systemctl enable mariadb.service

步骤 4) 保护安装好的 MariaDB

当我们安装 MariaDB 服务器时,因为默认情况下没有 root 密码,在数据库中也会创建匿名用户。因此,要保护安装好的 MariaDB,运行下面的 mysql_secure_installation 命令:

[root@linuxtechi ~]# mysql_secure_installation

接下来你将被提示一些问题,仅回答下面展示的问题:

Secure-MariaDB-Installation-Part1

Secure-MariaDB-Installation-Part2

步骤 5) 测试 MariaDB 安装

在你安装后,你总是能够测试是否 MariaDB 被成功地安装在 Fedora 30 Server 上。使用下面的命令:

[root@linuxtechi ~]# mysql -u root -p
Enter password:

接下来,你将被提示一个密码。输入在保护安装好的 MariaDB 期间你设置的密码,接下来你可以看到 MariaDB 欢迎屏幕。

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 17
Server version: 10.3.12-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

最后,我们已经在你的 Fedora 30 Server 上成功地完成安装 LEMP(Linux、Nginx、MariaDB 和 PHP)的所有工作。请在下面的反馈部分发布你的评论和建议,我们将尽快在后面回应。


via: https://www.linuxtechi.com/install-lemp-stack-fedora-30-server/

作者:Pradeep Kumar 选题:lujun9972 译者:robsean 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出