linux下的openssh简介(centos 8)

news2024/10/6 18:21:08

目录

    • 1. 简介
    • 2. 安装 OpenSSH
    • 3. 配置 OpenSSH 服务器
      • 3.1 服务器配置文件
        • 配置文件的详解
      • 3.2 安全操作——修改 SSH 端口
      • 3.3 安全操作——禁止 root 登录
      • 3.4 安全操作——密钥认证
      • 3.5 安全操作——禁止密码认证
    • 4. 配置 OpenSSH 客户端
      • 4.0 常用命令
        • 4.0.1 ssh常用命令
        • 4.0.2 scp常用命令
        • 4.0.3 sftp常用命令
      • 4.1 客户端配置文件
        • 配置文件的详解
      • 4.2 使用 SSH 密钥登录
      • 4.3 SSH 代理
    • 5. 常见问题与解决方案
      • 5.1 SSH 连接被拒绝
      • 5.2 SSH 密钥认证失败
      • 5.3 SSH 登录缓慢
    • 6. 密码分发脚本
      • 6.1 脚本
      • 6.2 效果
      • 6.3 ssh自动测试脚本与效果

1. 简介

OpenSSH 是一个开源的 SSH(Secure SHell)协议的实现,用于在不安全的网络中为网络服务提供安全的传输环境。OpenSSH 包括服务器端和客户端工具,可用于远程登录、文件传输和其他安全网络服务。

openssh分为服务端openssh-server和客户端openssh-clients

  • /etc/ssh/sshd_config是服务端文件
  • /etc/ssh/ssh_config是客户端文件
  • 服务端常用即sshd服务
  • 客户端常用即ssh、scp、sftp

2. 安装 OpenSSH

使用 dnf 安装 OpenSSH。

sudo dnf install openssh-server openssh-clients

3. 配置 OpenSSH 服务器

3.1 服务器配置文件

OpenSSH 服务器的主要配置文件为 /etc/ssh/sshd_config。在进行任何修改后,需要重启 SSH 服务以使配置生效。

sudo systemctl restart sshd
配置文件的详解
#Port 22                  # 默认SSH监听端口为22
#AddressFamily any        # 指定SSH监听的地址族,any表示同时监听IPv4和IPv6
#ListenAddress 0.0.0.0    # 指定监听的IPv4地址,0.0.0.0表示监听所有地址
#ListenAddress ::         # 指定监听的IPv6地址,::表示监听所有地址
HostKey /etc/ssh/ssh_host_rsa_key  # 指定RSA密钥文件路径
HostKey /etc/ssh/ssh_host_ecdsa_key  # 指定ECDSA密钥文件路径
HostKey /etc/ssh/ssh_host_ed25519_key  # 指定ED25519密钥文件路径
# Ciphers and keying
#RekeyLimit default none  # 指定重新生成密钥的数据量限制,default表示使用默认值

# Logging
#SyslogFacility AUTH      # 指定日志记录的设施,AUTH表示使用auth设施
SyslogFacility AUTHPRIV   # 指定日志记录的设施,AUTHPRIV表示使用authpriv设施
#LogLevel INFO            # 指定日志级别,INFO表示记录信息级别的日志
# Authentication:
#LoginGraceTime 2m        # 设置登录超时时间为2分钟
PermitRootLogin yes       # 允许root用户通过SSH登录
#StrictModes yes          # 检查用户目录和密钥文件的权限
#MaxAuthTries 6           # 设置最大认证尝试次数为6
#MaxSessions 10           # 设置最大会话数为10
#PubkeyAuthentication yes  # 允许使用公钥认证

AuthorizedKeysFile      .ssh/authorized_keys  # 指定授权密钥文件的位置
#AuthorizedPrincipalsFile none  # 指定授权主体文件的位置,none表示不使用
#AuthorizedKeysCommand none  # 指定外部命令用于验证密钥,none表示不使用
#AuthorizedKeysCommandUser nobody  # 指定执行AuthorizedKeysCommand的用户

#HostbasedAuthentication no  # 禁止基于主机的认证

#IgnoreUserKnownHosts no  # 不忽略用户known_hosts文件
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes  # 忽略rhosts文件
# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes  # 允许密码认证
#PermitEmptyPasswords no  # 不允许空密码
PasswordAuthentication yes  # 允许密码认证
# Change to no to disable s/key passwords
#ChallengeResponseAuthentication yes  # 允许s/key密码认证
ChallengeResponseAuthentication no  # 禁止s/key密码认证
# Kerberos options
#KerberosAuthentication no  # 禁止Kerberos认证
#KerberosOrLocalPasswd yes  # 允许Kerberos或本地密码认证
#KerberosTicketCleanup yes  # 清理Kerberos票据
#KerberosGetAFSToken no  # 不获取AFS令牌
#KerberosUseKuserok yes  # 使用Kerberos用户ok文件

# GSSAPI options
GSSAPIAuthentication yes  # 允许GSSAPI认证
GSSAPICleanupCredentials no  # 不在会话结束时清理GSSAPI凭据
#GSSAPIStrictAcceptorCheck yes  # 对GSSAPI接受者进行严格检查
#GSSAPIKeyExchange no  # 禁止GSSAPI密钥交换
#GSSAPIEnablek5users no  # 不启用k5users

UsePAM yes  # 使用PAM进行认证

#AllowAgentForwarding yes  # 允许SSH代理转发
#AllowTcpForwarding yes  # 允许TCP转发
#GatewayPorts no  # 网关端口,no表示仅监听环回接口
X11Forwarding yes  # 允许X11转发
#X11DisplayOffset 10  # 设置X11显示偏移量
#X11UseLocalhost yes  # 使用localhost进行X11转发
#PermitTTY yes  # 允许分配TTY

PrintMotd no  # 不显示motd消息

#PrintLastLog yes  # 显示上次登录信息
#TCPKeepAlive yes  # 发送TCP保持活动包
#PermitUserEnvironment no  # 不允许用户环境
#Compression delayed  # 延迟压缩
#ClientAliveInterval 0  # 设置客户端活动间隔
#ClientAliveCountMax 3  # 设置客户端活动最大次数
#UseDNS no  # 不使用DNS
#PidFile /var/run/sshd.pid  # 指定PID文件路径
#MaxStartups 10:30:100  # 最大启动数
#PermitTunnel no  # 不允许隧道
#ChrootDirectory none  # 不使用chroot目录
#VersionAddendum none  # 不添加版本后缀

#Banner none  # 不显示默认banner

# Accept locale-related environment variables
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS  # 接受环境变量

# override default of no subsystems
Subsystem       sftp    /usr/libexec/openssh/sftp-server  # 指定sftp子系统

# Example of overriding settings on a per-user basis
#Match User anoncvs
#       X11Forwarding no  # 对特定用户禁止X11转发
#       AllowTcpForwarding no  # 对特定用户禁止TCP转发
#       PermitTTY no  # 对特定用户禁止分配TTY
#       ForceCommand cvs server  # 对特定用户强制命令

实际上最常用的几个参数:

命令功能推荐值
加速连接速度
UseDNS no是否开启反向解析关闭
GSSAPIAuthentication noGSS认证功能关闭
安全优化选项
Portssh端口号,被注释时默认为221~65535,推荐1w以上随机端口
PermitRootLogin是否运行Root用户远程登陆,默认yes(ubuntu默认no)在安全场景最好更改为no,提前设置好sudo权限的普通用户
ListenAddress监听的地址,允许哪些网段来ssh可修改,配合堡垒机等进行使用
PasswordAuthentication yes是否允许密码验证,默认yes可修改,配合密钥登陆一同使用
UsePAM yes是否使用PAM认证,默认yes需进行安全规划再选择是否关闭

3.2 安全操作——修改 SSH 端口

出于安全考虑,可以将 SSH 服务器监听的端口更改为非标准端口。编辑 /etc/ssh/sshd_config 文件,找到 Port 选项,修改为所需的端口号。

Port 2222

3.3 安全操作——禁止 root 登录

为了增强安全性,建议禁止 root 用户通过 SSH 直接登录。编辑 /etc/ssh/sshd_config 文件,找到 PermitRootLogin 选项,修改为 no

PermitRootLogin no

3.4 安全操作——密钥认证

为了提高安全性,建议使用密钥认证方式登录 SSH。要注意,密钥认证仅单向有效(收到公钥的主机,可以被免密登录。在本场景,即A想要免密访问B,所以是A生成密钥并发送公钥到B),需要双向,需要双方都发送。

  • 文件
    • known_hosts:存放的是第一次ssh时的fingerprint(是否信任该主机)
      文件内容为:[免密登录服务器地址] [未知密钥头] [hostKey密钥]
      在这里插入图片描述
    • authorized_keys:存放的是客户端发来的公钥文件
      文件内容为:[加密算法] [公钥内容] [用户@ip]
  • 原理
    • 在客户端服务器A上为自己创建一对密钥,并把公钥放在需要免密登录的服务器B上。
    • 当你要连接到服务器B上时,客户端服务器A就会向服务器B请求使用密钥进行安全验证。
    • 服务器B收到请求之后,会在用户的home目录下寻找你的公钥。
    • 然后与你发送过来的公钥进行比较。
    • 如果两个密钥一致,服务器就用该公钥加密“质询”并把它发送给客户端服务器A。
    • 客户端收到“质询”之后用自己的私钥解密再把它发送给服务器。
      在这里插入图片描述
  • 步骤
  1. 首先,在A生成 SSH 密钥对。
#不需要再回车确认信息的命令
ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''
  1. 使用ssh-copy-id命令将公钥 ~/.ssh/id_rsa.pub 的内容复制到B的 ~/.ssh/authorized_keys 文件中。
# 如果公钥在默认路径'~/.ssh'下,也可以不需要'-i'参数;
ssh-copy-id -i .ssh/id_rsa.pub root@服务端ip
  1. 编辑 /etc/ssh/sshd_config 文件,确保以下选项已正确设置:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
  1. (可选)如何更快的发放密钥
  • 使用sshpass命令直接输入密码
yum install -y sshpass

#sshpass -p 密码 ssh root@ip 执行的命令
sshpass -p password ssh root@192.168.100.150 w
  • sshpass可以配合ssh-copy-id
#可能会遇到没有fingerprint,需要输入yes/no的情况,可以加-o StrictHostKeyChecking=no临时不检查主机信息
sshpass -p password ssh-copy-id -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no root@192.168.100.150

3.5 安全操作——禁止密码认证

为了进一步提高安全性,可以禁止使用密码进行 SSH 登录。编辑 /etc/ssh/sshd_config 文件,找到 PasswordAuthentication 选项,修改为 no

PasswordAuthentication no

4. 配置 OpenSSH 客户端

openssh-clients中的三个核心功能

  • scp:远程传输文件
  • ssh:远程连接
  • sftp:安全的ftp(22端口工作)

4.0 常用命令

4.0.1 ssh常用命令
ssh -p 端口号 用户名@ip 执行的命令
#-p 可选,指定端口号,默认22
#执行的命令 可选,用于在ssh成功后直接执行的命令

ssh -p12321 root@192.168.100.151 whoami
root
4.0.2 scp常用命令
scp 文件/目录     用户名@ip:路径
#-r 递归传输,传输目录
#-p 保持属性信息不变
#-P(大写) 指定端口号

scp  -rp -P 22   /etc/hostname   root@192.168.100.149:/tmp/
4.0.3 sftp常用命令

一般都是工具提供的GUI

4.1 客户端配置文件

OpenSSH 客户端的主要配置文件为 /etc/ssh/ssh_config。用户级别的配置文件为 ~/.ssh/config

配置文件的详解
# Host *
#   ForwardAgent no          # 是否转发认证代理的连接
#   ForwardX11 no            # 是否转发X11连接
#   PasswordAuthentication yes  # 是否允许使用密码进行认证
#   HostbasedAuthentication no  # 是否允许基于主机的认证
#   GSSAPIAuthentication no   # 是否允许使用GSSAPI进行认证
#   GSSAPIDelegateCredentials no  # 是否委派GSSAPI凭据
#   GSSAPIKeyExchange no      # 是否使用GSSAPI密钥交换
#   GSSAPITrustDNS no         # 是否信任DNS来解析GSSAPI主机名
#   BatchMode no              # 是否以批处理模式运行,不提示用户输入
#   CheckHostIP yes           # 是否检查主机IP地址
#   AddressFamily any         # 指定地址族,any表示同时使用IPv4和IPv6
#   ConnectTimeout 0          # 连接超时时间,0表示不超时
#   StrictHostKeyChecking ask # 是否严格检查主机密钥,ask表示询问用户
#   IdentityFile ~/.ssh/id_rsa  # 指定RSA密钥文件路径
#   IdentityFile ~/.ssh/id_dsa  # 指定DSA密钥文件路径
#   IdentityFile ~/.ssh/id_ecdsa  # 指定ECDSA密钥文件路径
#   IdentityFile ~/.ssh/id_ed25519  # 指定ED25519密钥文件路径
#   Port 22                   # 指定默认的SSH端口
#   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc  # 指定允许的加密算法
#   MACs hmac-md5,hmac-sha1,umac-64@openssh.com  # 指定允许的MAC算法
#   EscapeChar ~              # 指定转义字符
#   Tunnel no                 # 是否创建隧道
#   TunnelDevice any:any      # 指定隧道设备
#   PermitLocalCommand no     # 是否允许执行本地命令
#   VisualHostKey no          # 是否显示视觉主机密钥
#   ProxyCommand ssh -q -W %h:%p gateway.example.com  # 指定代理命令
#   RekeyLimit 1G 1h          # 指定重新生成密钥的数据量和时间限制

# This system is following system-wide crypto policy.
# To modify the system-wide ssh configuration, create a  *.conf  file under
# /etc/ssh/ssh_config.d/  which will be automatically included below
Include /etc/ssh/ssh_config.d/*.conf  # 包含/etc/ssh/ssh_config.d/目录下的所有.conf配置文件
  • 配置数据的解析顺序
    命令行选项、用户特定文件、系统级文件。
    任何配置值只在第一次设置时被更改,因此主机特定的定义应该放在配置文件的开始,而默认值放在最后。
  • 实际上最常用的几个参数:
    ForwardAgent:控制是否转发认证代理的连接。
    ForwardX11:控制是否转发 X11 连接。
    PasswordAuthentication:控制是否允许使用密码进行认证。
    HostbasedAuthentication:控制是否允许基于主机的认证。
    GSSAPIAuthentication:控制是否允许使用 GSSAPI 进行认证。
    StrictHostKeyChecking:控制是否严格检查主机密钥。
    IdentityFile:指定用于认证的密钥

4.2 使用 SSH 密钥登录

在客户端,使用以下命令登录 SSH 服务器:

ssh 用户名@服务器地址 -p 端口号

如果使用密钥认证,客户端会自动使用 ~/.ssh/id_rsa 私钥进行认证。

4.3 SSH 代理

为了简化使用 SSH 密钥的过程,可以使用 SSH 代理。运行以下命令以启动 SSH 代理:

ssh-agent

将生成的 SSH 密钥添加到代理中:

ssh-add ~/.ssh/id_rsa

5. 常见问题与解决方案

5.1 SSH 连接被拒绝

检查服务器上的 SSH 服务是否正在运行:

sudo systemctl status sshd

确保防火墙允许 SSH 端口的流量通过:

sudo firewall-cmd --add-service=ssh --permanent
sudo firewall-cmd --reload

5.2 SSH 密钥认证失败

检查客户端和服务器上的 SSH 密钥文件权限是否正确。正确的权限设置如下:

  • ~/.ssh/id_rsa:600
  • ~/.ssh/authorized_keys:600
  • ~/.ssh:700

5.3 SSH 登录缓慢

检查客户端和服务器上的 DNS 解析是否正常。编辑 /etc/ssh/ssh_config 文件,添加以下行以禁用 DNS 解析:

UseDNS no

6. 密码分发脚本

6.1 脚本

#!/bin/bash
#author:tassel
#desc: 一键创建密钥,并分发

#0.import function lib
. /etc/init.d/functions

#1.variable
passwd="Huawei@123"
iplist="192.168.100.148 192.168.100.149 192.168.100.150"

#2.create id_rsa
if [ -f ~/.ssh/id_rsa ]; then
        echo "已经创建密钥"
else
        echo "创建密钥ing"
        ssh-keygen -t rsa -f ~/.ssh/id_rsa -P '' &>/dev/null
        if [ $? -eq 0 ]; then
                action "密钥创建成功" /bin/true
        else
                action "密钥创建失败" /bin/false
        fi
fi

#3.copy-id
for ip in $iplist
do
        sshpass -p $passwd ssh-copy-id -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no root@$ip &>/dev/null
        if [ $? -eq 0 ]; then
                action "$ip 密钥分发成功" /bin/true
        else
                action "$ip 密钥分发失败" /bin/false
        fi
done

6.2 效果

sh secretautosend.sh
创建密钥ing
密钥创建成功                                               [  OK  ]
192.168.100.148 密钥分发成功                               [  OK  ]
192.168.100.149 密钥分发成功                               [  OK  ]
192.168.100.150 密钥分发成功                               [  OK  ]

6.3 ssh自动测试脚本与效果

[root@manager ~]# cat sshtest.sh
#!/bin/bash
#author: tassel
#desc: 自动测试ssh是否可以免密

#0.import function lib
. /etc/init.d/functions

#1.test
for ip in 192.168.100.{147..150}
do
        ssh $ip hostname &>/dev/null
        if [ $? -eq 0 ]; then
                action "$ip测试成功" /bin/true
        else
                action "$ip 测试失败,请检查" /bin/false
        fi
done

------

[root@manager ~]# sh sshtest.sh
192.168.100.147 测试失败,请检查                           [FAILED]
192.168.100.148测试成功                                    [  OK  ]
192.168.100.149测试成功                                    [  OK  ]
192.168.100.150测试成功                                    [  OK  ]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1704778.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ubuntu22部署Docker私有仓库Harbor (http https方式)

harbor日志:/var/log/harbor 前置安装配置 需先安装docker和docker-compose: 0.配置清华大学apt源并安装docker #信任 Docker 的 GPG 公钥: sudo apt-get install ca-certificates curl gnupg curl -fsSL https://download.docker.com/linux/ubunt…

遥测终端机RTU:为水利细分场景量身定制的智能化应用

在日益智能化的现代社会,水利行业正迎来前所未有的变革。为了更好地满足水利细分场景的需求,我们针对每个细分场景推出了专用遥测终端机,为您的水利工作带来前所未有的便捷与高效。 为一款智能化应用,遥测终端机的安全性也是我们…

图形学初识--纹理采样和Wrap方式

文章目录 前言正文1、为什么需要纹理采样?2、什么是纹理采样?3、如何进行纹理采样?(1)假设绘制区域为矩形(2)假设绘制区域为三角形 4、什么是纹理的Wrap方式?5、有哪些纹理的Wrap方式…

强大友好的Nginx扩展:VeryNginx

VeryNginx: 简化Web管理,增强网站防御- 精选真开源,释放新价值。 概览 VeryNginx是一个基于lua-nginx-module(openresty)的高效、友好的Nginx版本,专为满足现代Web应用的需求而设计。它不仅提供了强大的We…

Java | Leetcode Java题解之第115题不同的子序列

题目&#xff1a; 题解&#xff1a; class Solution {public int numDistinct(String s, String t) {int m s.length(), n t.length();if (m < n) {return 0;}int[][] dp new int[m 1][n 1];for (int i 0; i < m; i) {dp[i][n] 1;}for (int i m - 1; i > 0; …

K-means聚类模型入门介绍

K-means聚类是一种无监督学习方法&#xff0c;广泛应用于数据挖掘、机器学习和模式识别等领域&#xff0c;用于将数据集划分为K个簇&#xff08;cluster&#xff09;&#xff0c;其中每个簇的数据具有相似的特征。其基本思想是通过迭代寻找使簇内点间距离平方和最小的簇划分方式…

【Java SE】超详细讲解String类(上)

&#x1f970;&#x1f970;&#x1f970;来都来了&#xff0c;不妨点个关注叭&#xff01; &#x1f449;博客主页&#xff1a;欢迎各位大佬!&#x1f448; 文章目录 1. 初步认识String2. String类的常用方法2.1 字符串构造2.2 String对象比较2.2.1 比较是否引用同一个对象2.2…

创新实训2024.05.28日志:记忆化机制、基于MTPE与CoT技术的混合LLM对话机制

1. 带有记忆的会话 1.1. 查询会话历史记录 在利用大模型自身能力进行对话与解答时&#xff0c;最好对用户当前会话的历史记录进行还原&#xff0c;大模型能够更好地联系上下文进行解答。 在langchain chat chat的chat函数中&#xff0c;通过实现langchain框架提供的ChatMemo…

XGIS引擎上线曲折历史

演示地址&#xff1a;threelab首页 其实在一年前甚至更早&#xff0c;已经完整了初版的XGIS三维引擎开发&#xff0c;完成了基本的操作。 但是很多原因导致我一直没有上线&#xff0c;也不是没有上线&#xff0c;上线了&#xff0c;又下掉了。总感觉自己写的欠缺&#xff0c;或…

Easy-laser激光对中仪维修D505激光测平仪维修

Easylaser激光对中仪多应用于风力发电业的塔架、机架、轮毂、偏航轴承和变桨轴承的几何指标测量中。此系列常见维修型号包括D450&#xff1b;D480&#xff1b;D505&#xff1b;D525&#xff1b;D550等。 Easy-Laser对中仪维修注意事项&#xff1a; 测量功能包括&#xff1a; …

虚拟化技术 分布式资源调度

一、实验内容 实现分布式资源调度 二、实验主要仪器设备及材料 安装有64位Windows操作系统的台式电脑或笔记本电脑&#xff0c;建议4C8G或以上配置已安装VMware Workstation Pro已安装Windows Server 2008 R2 x64已安装vCenter Server 三、实验步骤 将主机esxi1和esxi2加入…

JVM-之GC日志

一、 开启gc 日志 在项目中开启GC 日志打印后会查看gc 日志如下 nohup java -Xms768m -Xmx768m -XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath./dumplog/dumplog.log -Xloggc:./dumplog/gc.log -XX:PrintGCDetails -XX:PrintGCDateStamps -XX:PrintHeapAtGC -jar xxxx…

小易大数据:大数据报告查询领域的黑马,这些优势让你无法忽视!

随着大数据技术被运用到各行各业&#xff0c;风控领域也不例外&#xff0c;形成了基于大数据技术的大数据信用&#xff0c;也就是我们常说的大数据报告或者网贷大数据&#xff0c;在众多的查询平台中&#xff0c;小易大数据平台在市面上是比较受欢迎的&#xff0c;那在小易平台…

使用华为快传同步文件至电脑

使用华为快传同步文件至电脑&#xff0c;电脑端未发现设备解决办法 1、手机和电脑连同一网络 2、打开手机华为分享&#xff0c;打开电脑网络 3、网络中找到设备&#xff0c;输入账户密码进行连接&#xff08;未找到设备往下继续看&#xff09; 未找到设备解决办法&#xff1…

电脑如何在网页上下载视频 浏览器如何下载网页视频

对于现代职场人士而言&#xff0c;在日常生活中难免需要下载各种短视频&#xff0c;IDM下载加速器可以轻松获取抖音、快手等平台的无水印短视频文件。 Internet Download Manager&#xff0c;简称IDM。功能强大的网络下载器。您不需要多余的操作&#xff0c;IDM 能捕获您的下载…

阿里云获取nginx头部

k8s 配置 可以修改kube-system/nginx-configuration configmap的方式&#xff0c; compute-full-forwarded-for: “true” forwarded-for-header: “X-Forwarded-For” use-forwarded-headers: “true” https://help.aliyun.com/zh/ack/ack-managed-and-ack-dedicated/user-g…

Day01-01-git

Day01-01-git Content List0. 运维发展过程1. ci-cd-co基础1.1 软件的生命周期1&#xff09;软件的声明周期&#xff1a;软件从0-->1-->0过程2&#xff09;ci/cd3&#xff09;Devops4) 小结 1.2 什么是环境1.3 什么是代码部署1.4 代码发布方式 3. DevSecOpt之Git极速入门…

INTERCONNECT 中使用库中器件制作一个损耗为 3 dB /m 的直波导

INTERCONNECT 中使用库中器件制作一个损耗为 3 dB /m 的直波导 正文 正文 首先&#xff0c;插入以下器件并连接。 其次&#xff0c;设置直波导 WGD_1 的器件参数&#xff0c;如下图所示&#xff1a; 运行仿真&#xff0c;在 ONA 中查看 gain 值。 可以看到&#xff0c;对应…

C++入门——日期类的实现

前言 生活中&#xff0c;我们时不时会遇到算天数的问题&#xff1a;高考倒计时、考研倒计时、过年倒计时...... 想解决这些问题无非就是实现一个年月日的计算器&#xff0c;那要怎么来实现呢&#xff1f; 下面就让我们来探究一下。 1.了解日期计算器的需求 1.1 表面需求 …

Java实现链表

链表 前言一、链表的概念及结构二、链表的分类三、链表的实现无头单向非循环链表实现无头双向链表实现具体代码 四、链表习题五、顺序表和链表的区别 前言 推荐一个网站给想要了解或者学习人工智能知识的读者&#xff0c;这个网站里内容讲解通俗易懂且风趣幽默&#xff0c;对我…