【如何使用SSH密钥验证提升服务器安全性及操作效率】(优雅的连接到自己的linux服务器)

文章目录

  • 一、理论基础(不喜欢这部分的可直接看具体操作)
    • 1.为什么要看本文(为了zhuangbility)
    • 2.为什么要用密钥验证(更安全不易被攻破)
    • 3.密码验证与密钥验证的区别
  • 二、具体操作
    • 1.生成密钥对
      • 1.1抉择:客户端生成?OR服务器生成?
      • 1.2执行生成密钥对:
      • 1.3再啰嗦一下:
      • 1.4生成的密钥对长啥样:
    • 2.在服务器端进行配置
      • 2.1服务端的`authorized_key`(授权列表)文件配置
        • 2.1.1 本地PC生成密钥对的小伙伴,请看这部分:
          • 方法一:使用 SSH 拷贝公钥到远程服务器(适用于Mac、Linux电脑)
          • 方法二:手动上传公钥到服务器(适用于Windows、Mac及linux电脑)
        • 2.1.2 服务器生成密钥对的小伙伴,请看这部分:
      • 2.2 服务端允许通过密钥方式登录的配置确认
    • 3.使用SSH命令指定私钥登录服务器
      • 3.1 用SSH指定私钥的方式登录到服务器
      • 3.2 用SSH默认私钥的方式登录到服务器
      • 3.3 用更优雅的命令方式进行SSH登录到服务器
      • 3.4 极致的优雅!借助别名(alias)让命令更短!
        • 3.4.1 在 macOS 和 Linux 上:
        • 3.4.2在 Windows 上:
      • 3.5 注意事项:
  • 三、总结

一、理论基础(不喜欢这部分的可直接看具体操作)

1.为什么要看本文(为了zhuangbility)

你有没有看过别人不用输入密码,只需要简单的一行命令就可以连接到服务器,你是不是也很好奇,不输入密码怎么能通过认证的?本文为你揭秘整个细节操作,无论你是windows电脑还是mac电脑,甚至是linux操作系统,看完本文,你也可以同样输入一行命令就能连接到自己的服务器了!来一波强势装逼!

2.为什么要用密钥验证(更安全不易被攻破)

在网络连接中,安全性是至关重要的一环。传统的密码验证方式虽然简单易用,但存在着被暴力破解或者被盗用的风险。为了提高服务器的安全性,密钥验证成为了一种更为可靠的选择。

3.密码验证与密钥验证的区别

在传统的密码验证中,用户需要输入用户名和密码才能登录到服务器。这种方式存在着密码被盗用的风险,尤其是在使用弱密码或者在不安全的网络环境下。而密钥验证则是一种基于非对称加密算法的验证方式,用户需要生成一对密钥,其中一个是私钥(Private Key),另一个是公钥(Public Key)。私钥保存在客户端,而公钥则被上传到服务器端。当用户尝试连接到服务器时,服务器会要求客户端提供对应的私钥,如果私钥匹配服务器端存储的公钥,则验证通过,用户可以登录到服务器。

相比密码验证,密钥验证具有以下优势:

  • 更高的安全性:私钥存储在客户端,不会在网络上传输,减少了密码被盗用的风险。
  • 免去密码记忆的烦恼:用户无需记忆复杂的密码,只需保存好私钥即可。

二、具体操作

那么铺垫了这么多,到底如何才能使用密钥进行验证登录呢? 不要着急,总共就三板斧:

  • 1.生成密钥对(包括公钥和私钥)
  • 2.在服务器端进行配置,允许密钥认证方式并且配置好相关的授权列表。
  • 3.确保服务器的公钥和客户端使用的私钥是匹配的,使用SSH命令进行登录即可大功告成!

1.生成密钥对

1.1抉择:客户端生成?OR服务器生成?

生成密钥对的时候,可以在客户端进行生成,也可以在服务器上进行生成,这个具体取决于哪种方式对你更加方便。

  • 如果你有一台个人PC,但是你有多个linux服务器,你希望生成一个密钥对之后,就可以访问所有的服务器,那么你就在个人PC上进行密钥对的生成即可。
  • 如果你有一台linux服务器,但是需要多个客户终端去连这个服务器,那么你就在这台linux服务器上生成密钥对即可。
  • 如果不属于以上两种,那你就随意选一种就可以。

1.2执行生成密钥对:

在命令窗口执行以下命令即可:

ssh-keygen

执行完以上代码之后,会出现提示,没有特殊要求的话,直接一路回车,然后就生成结束了。

如果有特殊要求的话,就请仔细查阅1.3再啰嗦一下这个部分。

1.3再啰嗦一下:

SSH(Secure Shell)是一种网络协议,用于通过加密的通信管道在网络上安全地进行远程登录和执行命令。SSH协议通过加密技术,防止了数据在传输过程中被窃取或篡改的风险。

ssh-keygen 命令是SSH工具包中的一个命令行工具,用于生成SSH密钥对,即公钥和私钥。SSH密钥对由一对相互关联的密钥组成:

  1. 公钥(public key):公钥用于加密数据或验证签名,并且可以安全地与其他人分享,例如将其存储在远程服务器上以进行身份验证。
  2. 私钥(private key):私钥通常保存在生成密钥对的计算机上,并且必须严格保密。私钥用于解密数据或生成数字签名,用于身份验证。

ssh-keygen 命令有多个可选选项,其中一些常用选项包括:

  1. -t:指定要生成的密钥类型,如 rsadsaecdsaed25519 等。
  2. -b:指定生成密钥的位数,通常用于RSA密钥,如 -b 2048
  3. -C:在生成密钥时添加注释,可用于识别密钥的用途或所有者。
  4. -f:指定生成密钥的文件路径和名称。
  5. -N:设置用于保护私钥的密码,可以为空。
  6. -q:静默模式,减少输出信息。
  7. -y:从私钥中提取公钥并打印到标准输出。
  8. -h:显示命令的使用帮助信息。

这些选项可以根据需要组合使用,以生成符合特定需求的密钥对。
当你使用 ssh-keygen 命令时,它会向你提供一些选项,例如密钥类型(RSA、DSA、ECDSA、ED25519等)、密钥位数、密钥保存路径等。一般来说,你可以按照默认选项生成密钥对,但也可以根据需要自定义选项。

生成密钥对后,你可以将公钥部署到需要进行SSH连接的服务器上,以便你可以使用对应的私钥进行安全的远程登录或执行命令,而无需输入密码。这种基于密钥对的身份验证方式通常比基于密码的身份验证更安全。

1.4生成的密钥对长啥样:

生成的密钥对如果你没有特意的选择路径的话,一般都在默认路径下。

  • windows电脑对应的路径为:C:\Users\你的用户名\.ssh
  • MAC/linux对应的路径为:~/.ssh
    生成的密钥对有两个文件:id_rsa(私钥文件)和 id_rsa.pub(公钥文件)
    在这里插入图片描述
    至此,第一步已经成功完成了,恭喜你!接着来看第二步吧。

2.在服务器端进行配置

此时需要做两件事情:

  • 1.确保公钥内容在~/.ssh/authorized_key文件(如果没有这个文件,请手动创建)中。(无论是在客户端生成的密钥对还是服务端生成的密钥对)
  • 2.确保服务器端打开了允许通过秘钥验证的方式登录。

2.1服务端的authorized_key(授权列表)文件配置

2.1.1 本地PC生成密钥对的小伙伴,请看这部分:

将本地生成的公钥上传到服务器中可以通过多种方式实现,以下是其中两种常用的方法:

方法一:使用 SSH 拷贝公钥到远程服务器(适用于Mac、Linux电脑)
  1. 使用以下命令将本地公钥复制到远程服务器:

    ssh-copy-id username@remote_host
    

    其中 username 是你在远程服务器上的用户名,remote_host 是远程服务器的地址或主机名。系统会要求你输入密码,然后将公钥自动添加到远程服务器的 ~/.ssh/authorized_keys 文件中。

  2. 如果你的服务器端口不是默认的 22 端口,可以使用 -p 参数指定端口号:

    ssh-copy-id -p port_number username@remote_host
    

    其中 port_number 是你的服务器 SSH 服务的端口号。

方法二:手动上传公钥到服务器(适用于Windows、Mac及linux电脑)
  1. 首先使用 scp 命令将本地公钥复制到远程服务器,例如:

    scp ~/.ssh/id_rsa.pub username@remote_host:~/temp_key.pub
    

    这将把本地公钥文件 id_rsa.pub 复制到远程服务器的 ~/temp_key.pub 文件中。

  2. 登录到远程服务器,并将公钥内容追加到 ~/.ssh/authorized_keys 文件中:

    ssh username@remote_host
    cat ~/temp_key.pub >> ~/.ssh/authorized_keys
    rm ~/temp_key.pub  # 可选:删除临时公钥文件
    

    这样就将本地生成的公钥内容手动添加到了远程服务器的授权列表中。

2.1.2 服务器生成密钥对的小伙伴,请看这部分:

1.首先,在服务器的授权列表,将生成的公钥内容放进去。具体步骤如下:

  1. 先忍耐一下,通过以往密码的方式登录到你的服务器。
  2. 将服务端生成的公钥内容添加到 ~/.ssh/authorized_keys 文件中:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  1. 修改 authorized_keys 文件的权限:(如果权限够,这步可以省略)
chmod 600 ~/.ssh/authorized_keys

2.其次,将服务器生成的私钥文件复制到你的本地电脑,用于之后的密钥验证登录。

你可以使用以下方法将服务器上的私钥文件复制到本地:

Windows:

  1. 使用SCP命令进行复制: 使用SCP命令连接到服务器并将私钥文件下载到本地计算机上的当前目录中。
    scp命令复制的代码如下:
    scp username@server_address:~/.ssh/id_rsa .
    

username 替换为你在服务器上的用户名,server_address 替换为你的服务器地址,~/.ssh/id_rsa为默认的私钥文件存放的地址,如果你的路径不一样,请进行替换。.为本地计算机上要保存私钥文件的路径,这里为当前目录。
2. 使用 SSH 客户端: 如果你使用的 SSH 客户端支持文件传输功能,你也可以使用它来将文件从服务器复制到本地计算机。

macOS:

  1. 使用 SCP 命令: 在终端中使用 SCP 命令从服务器复制文件到本地计算机。例如:

    scp username@server_address:/path/to/private_key /local/path/to/save
    

    username 替换为你在服务器上的用户名,server_address 替换为你的服务器地址,/path/to/private_key 替换为服务器上私钥文件的路径,/local/path/to/save 替换为本地计算机上要保存私钥文件的路径。

  2. 使用 SFTP: 如果你使用的 SSH 客户端支持 SFTP 功能,你可以连接到服务器并使用 SFTP 功能将文件下载到本地计算机上。

2.2 服务端允许通过密钥方式登录的配置确认

确认服务器端已经开启了允许密钥登录方式的配置可以通过以下步骤:

  1. 登录到服务器:首先,通过用户名和密码登录到服务器。

  2. 检查SSH配置文件:使用文本编辑器(如nano或vim)打开SSH配置文件。在大多数Linux系统中,SSH配置文件位于 /etc/ssh/sshd_config

  3. 查找密钥登录配置:在配置文件中查找以下行:

    PubkeyAuthentication yes
    

    如果这一行存在,并且值为 yes,则表示已经允许使用密钥登录。如果值为no,需要手动改为yes

*注意:

PasswordAuthentication yes

这个配置项是控制是否允许使用密码登录的,值是yes代表允许密码登录,如果改为no,则无法再通过密码的方式进行登录。
切记:用密钥登录的方式没有调通之前,千万不要关闭密码登录,否则你将会把自己困住,再也进不去服务器( ̄︶ ̄),别问我怎么知道的……

  1. 重启SSH服务:如果你对配置文件进行了更改,则必须重启SSH服务才可以使更改生效。可以使用以下命令来重启SSH服务:

    sudo systemctl restart sshd
    

至此,第二步的工作也搞定了,成功就在眼前了,让我们一鼓作气完成!

3.使用SSH命令指定私钥登录服务器

3.1 用SSH指定私钥的方式登录到服务器

现在,我们本地已经有私钥文件了,直接验证一波使用密钥验证登录到服务器,看是否可以:

ssh -i /path/to/private_key username@server_ip

这个命令是用于通过SSH连接到远程服务器的命令,下面解释一下其中的各个部分:

  1. ssh:这是命令本身,表示要使用SSH协议进行连接。

  2. -i /path/to/private_key:这是SSH选项 -i,用于指定私钥文件的路径。私钥文件是用于密钥身份验证的一部分,它与公钥文件成对生成,通常存储在本地计算机上。在这个命令中,/path/to/private_key 应该被替换为你实际私钥文件的路径。这个私钥文件必须匹配在服务器上为相应用户配置的公钥。

  3. username@server_ip:这是你要连接的远程服务器的用户名和IP地址或域名。username 是你在远程服务器上的用户名,server_ip 是服务器的IP地址或域名。通过这个部分,SSH知道要连接哪个远程服务器,并且使用提供的用户名进行登录。

所以,整个命令的含义是:使用指定的私钥文件连接到远程服务器,以提供的用户名进行登录。这个命令适用于基于密钥的身份验证,私钥文件是用于验证你的身份,并且必须与服务器上对应用户的公钥匹配。

我运行的截图如下:
在这里插入图片描述
可以看到,我们已经大功告成了!已经可以成功通过密钥验证的方式链接服务器了!

什么,命令太长了,记不住?那你试试下面这种方式:

3.2 用SSH默认私钥的方式登录到服务器

ssh  username@server_ip

这种情况就是不加 -i 参数,SSH 将默认使用用户的默认私钥文件进行连接。
通常情况下,这个默认私钥文件位于用户的家目录下的 .ssh 文件夹中,文件名为 id_rsa
所以,如果你满足这个条件的话,你会发现,这样也可以直接登录服务器了!

啥,我是个骗子,这种方式不够优雅?
好好好,压箱底的东西看来非得掏出来了,给我往下看!

3.3 用更优雅的命令方式进行SSH登录到服务器

秘籍就是.ssh目录下的config文件,这就是想优雅的比较关键的一点。

.ssh 目录下的 config 文件是 SSH 客户端的配置文件,它可以包含一系列主机配置选项,以及对每个主机的自定义配置。这个文件允许你在连接到远程主机时自定义一些参数,从而简化 SSH 连接过程并提高灵活性。

以下是一些常见的用法:

  1. 指定主机别名:你可以为远程主机设置别名,这样你就不必每次都输入完整的主机名。例如:

    Host myserverHostName server_ipUser username
    

    这样,你只需要使用 ssh myserver 就可以连接到 server_ip,并以 username 用户身份登录。

  2. 指定身份验证方法:你可以在 config 文件中指定要使用的身份验证方法,如使用特定的私钥文件或密码。例如:

    Host myserverHostName server_ipUser usernameIdentityFile /path/to/private_key
    

    这样,你就可以在连接到 myserver 时自动使用指定的私钥文件进行身份验证。

  3. 端口转发和代理:你可以配置端口转发和代理,以便在 SSH 连接时自动设置端口转发或使用代理。例如:

    Host myserverHostName server_ipUser usernameLocalForward 8080 localhost:80ProxyJump jumpserver
    

    这样,当连接到 myserver 时,会自动设置本地端口 8080 到远程主机 localhost80 端口的转发,并且通过 jumpserver 进行代理跳转。

通过使用 config 文件,你可以方便地管理多个主机的连接参数,并且可以自定义各种连接选项,使 SSH 连接更加灵活和高效。

怎么样,这样总可以了吧!现在命令可是缩短成了:
ssh myserver
这样已经很短了吧,已经很方便了。如果你还是要追求极致,想要更短,比如用一个字母的这种命令就可以让其运行,那也不是不行,但是这就涉及到了命令行别名的问题,如果你还有兴趣,就继续往下看!

在大多数情况下,为了保持命令的清晰性和可读性,缩短别名到单个字母可能会导致理解上的困难,并且可能与其他系统命令发生冲突。不过,如果你仍然希望缩短命令,可以尝试以下方法:

3.4 极致的优雅!借助别名(alias)让命令更短!

3.4.1 在 macOS 和 Linux 上:

你可以在用户的 ~/.bashrc~/.bash_profile 文件中添加别名定义。例如:

alias a='ssh myserver'

保存文件后,重新启动终端或者执行 source ~/.bashrcsource ~/.bash_profile 来使更改生效。

3.4.2在 Windows 上:

在 Windows 上,你可以在 PowerShell 或者命令提示符中使用 doskey 命令来创建别名。例如:

doskey a=ssh myserver

已经要记得,改完这些配置文件后,需要重新加载才可以生效!!!不然不管用!!

在这里插入图片描述

3.5 注意事项:

  • 在使用单个字母的别名时要特别小心,确保不会与其他系统命令冲突。
  • 确保别名的清晰和易懂,避免造成混淆和误解。

无论你选择哪种方法,都请谨慎操作,以确保不会产生意外的后果。

如此一来,只需要在命令行执行 a ,就可以直接通过密钥验证的方式链接到你的服务器了。

三、总结

在本文中,我们首先明确了阅读的动机——追求装逼(zhuangbility)。然后,我们深入探讨了为什么要采用密钥验证而不是传统的密码验证,指出了密钥验证的更高安全性和难以被攻破的优势,以及密码验证与密钥验证的区别。

具体操作方面,我们从生成密钥对开始,探讨了在客户端还是服务器端进行生成的抉择,然后详细介绍了如何执行生成密钥对,并简要解释了生成的密钥对的样式。接着,在服务器端进行配置方面,我们介绍了配置服务端的authorized_key文件,针对本地PC生成密钥对和服务器生成密钥对的小伙伴分别提供了配置指南。然后,我们确认了服务端允许通过密钥方式登录的配置,确保安全登录。接下来,我们详细介绍了使用SSH命令指定私钥登录服务器的几种方式,包括指定私钥的方式、默认私钥的方式以及更优雅的命令方式。最后,我们分享了一个极致优雅的技巧——借助别名(alias),让命令更加简短,提高操作效率。

通过本文的学习,读者不仅能够理解密钥验证的原理和优势,还可以掌握实际操作中生成密钥对、配置服务器端和登录服务器的方法,从而提升系统安全性,并在操作中实现更高的效率和便利。
在这里插入图片描述
至此,你已经掌握了无上绝学,可以放心的去装逼了!

大师兄诚不欺人,感谢各位大佬的观看!

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

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

相关文章

计算机复试项目:SpringCloud实战高并发微服务架构设计

秒杀购物商城--环境搭建 秒杀购物商城基础服务组件--详细介绍 秒杀购物商城基础服务--权限中心 秒杀购物商城业务服务--收货地址 秒杀购物商城业务服务--秒杀活动服务 秒杀购物商城--购物车的功能设计及分析 秒杀购物商城基础服务-用户中心 秒杀购物商城业务服务--商品中…

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单人脸检测/识别实战案例 之九 简单进行嘴巴检测并添加特效的功能实现

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单人脸检测/识别实战案例 之九 简单进行嘴巴检测并添加特效的功能实现 目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单人脸检测/识别实战案例 之九 简单进行嘴巴检测并添加特效的功能实现 一、简单介绍 二、简单…

ArcGIS小技巧—模型构建器快速提取河网

上篇文章介绍的基于DEM的河网提取,需要使用多个工具,整体操作比较繁琐,在日常工作中,使用Arcgis提供的模型构建器可以帮助我们将多个工具整合在一起,在面对大量数据批量处理时,可以大大提高工作效率 利用模…

数字化wms仓库管理软件,实现企业仓储信息共享与智慧运行-亿发

在经济飞速发展的今天,企业面临着客户需求多样化、质量和交期要求提高以及激烈的市场竞争等挑战。在这样的背景下,许多企业开始考虑采用数字化仓储WMS系统来解决这些问题。 数字化仓储WMS系统通过打造高效、规范的仓库管理体系,实现了对产品…

爱普生晶振在物联网LoRa通讯中的应用

LoRa 是LPWAN通信技术中的一种,是美国Semtech公司采用和推广的一种基于扩频技术的超远距离无线传输方案。这一方案改变了以往关于传输距离与功耗的折衷考虑方式,为用户提供一种简单的能实现远距离、长电池寿命、大容量的系统,进而扩展传感网络…

神经网络高效训练:优化GPU受限环境下的大规模CSV数据处理指南

最近训练模型,需要加载wifi sci data 数据量特别大,直接干爆内存,训练也特别慢,快放弃了!随后冷静下来,然后靠着多年的经验,来进行层层优化,随诞生了这篇博客。 背景介绍 机器学习模型的训练通常需要大量的数据,尤其是对于深度神经网络模型。然而,当数据集非常庞大时…

网络之路29:三层链路聚合

正文共:1666 字 17 图,预估阅读时间:3 分钟 目录 网络之路第一章:Windows系统中的网络 0、序言 1、Windows系统中的网络1.1、桌面中的网卡1.2、命令行中的网卡1.3、路由表1.4、家用路由器 网络之路第二章:认识企业设备…

新质生产力实践,我用chatgpt开发网站

是的,我用chatgpt开发了一个网站,很轻松。 我之前一点不懂前端,也没有网站开发的代码基础,纯正的0基础。 从0开始到最后成品上线,时间总计起来大致一共花了2-3周的时间。 初始想法我是想给我公司开发一个网站&#…

【弱监督语义分割】AllSpark:从transformer中的未标记特征重生标记特征,用于半监督语义分割

AllSpark: Reborn Labeled Features from Unlabeled in Transformer for Semi-Supervised Semantic Segmentation 摘要: 目前最先进的方法是用真实标签训练标注数据,用伪标签训练未标注数据。然而,这两个训练流程是分开的,这就使…

Android数据恢复:如何在手机上恢复丢失的文件和照片

我们都有 我们错误地从手机中删除重要内容的时刻。确实如此 不一定是我们的错。其他人可以对您的手机数据执行此操作 有意或无意。这在某个时间点发生在我们所有人身上。 但是,今天市场上有各种各样的软件可以 帮助恢复已删除的文件。这些类型的软件被归类为数据恢复…

Pandas数据可视化 - Matplotlib、Seaborn、Pandas Plot、Plotly

可视化工具介绍 让我们一起探讨Matplotlib、Seaborn、Pandas Plot和Plotly这四个数据可视化库的优缺点以及各自的适用场景。这有助于你根据不同的需求选择合适的工具。 1. Matplotlib 优点: 功能强大:几乎可以用于绘制任何静态、动画和交互式图表。高度可定制&a…

用OpenCV先去除边框线,以提升OCR准确率

在OpenCV的魔力下,我们如魔法师般巧妙地抹去表格的边框线,让文字如诗如画地跃然纸上。 首先,我们挥动魔杖,将五彩斑斓的图像转化为单一的灰度世界,如同将一幅绚丽的油画化为水墨画,通过cv2.cvtColor()函数的…

寝室快修|基于SprinBoot+vue的贵工程寝室快修小程序(源码+数据库+文档)

贵工程寝室快修目录 目录 基于SprinBootvue的贵工程寝室快修小程序 一、前言 二、系统设计 三、系统功能设计 1学生信息管理 2 在线报修管理 3公告信息管理 4论坛信息管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&a…

结构方程模型【SEM】:非线性、非正态、交互作用及分类变量分析

张老师(研究员),长期从事R语言结构方程模型、群落生态学、保护生物学、景观生态学和生态模型方面的研究和教学工作,已发表了多篇论文,拥有丰富的科研及实践经验。 利用结构方程模型建模往往遇到很多‘特殊’情况&…

Excel 批量创建sheet页

参考资料 最巧妙的Excel批量创建工作表方法 一. 需求 ⏹有如下模板,现想根据提供的姓名,批量创建sheet页,要求每个sheet页拥有相同的模板 二. 通过透视表,批量创建sheet页面 ⏹如下图所示的步骤,创建透视表后&#…

人工 VS AGV无人搬运机器人,AGV赋能中国智能制造

agv 机器人作为智能制造的重要抓手,正在渗透到各个传统行业,成为我国制造业转型升级的焦点。未来,智能AGV将不仅仅是简单的把货物搬运到指定的位置,而是要把5G技术、大数据、物联网、云计算等贯穿于产品的设计中,让智能…

《动手学深度学习(Pytorch版)》Task03:线性神经网络——4.29打卡

《动手学深度学习(Pytorch版)》Task03:线性神经网络 线性回归基本元素线性模型损失函数随机梯度下降 正态分布与平方损失 线性回归的从零开始实现读取数据集初始化模型参数定义模型定义损失函数定义优化算法训练 线性回归的简洁实现读取数据集…

帕累托森林李朝政博士受聘「天工开物开源基金会」专家顾问

导语: 开源铸造了当前最前沿的科技引擎。开源驱动了软件生态,也以指数级速度驱动硬件生态。 3月中旬,天工开物开源基金会授予李朝政博士专家顾问,表彰他积极推动参与中国智能软件生态的建设,期待一起共筑未来新生态。…

Python_AI库 Pandas的时间序列操作详解

Python_AI库 Pandas的时间序列操作详解 本文默认读者具备以下技能: 熟悉python基础知识,vscode或其它编辑工具 了解pandas,matplotlib的基础操作 具备自主扩展学习能力 在数据分析和处理中,时间序列数据是一类常见且重要的数据类型。大量的…

CSS实现各种优惠券效果

一、左半圆效果 <style style"text/css">.coupon {width: 240px;height: 100px;margin-top: 15px;background-color: #ff6347;-webkit-mask: radial-gradient(circle at left center, transparent 20px, red 20px); } </style><div class"coupon…