展开菜单
首页 精品内容 本月促销 装机必备 Windows PDF教程 macOS软件 IOS软件 Android AI 专题
全部分类

当前位置:

首页 > 软件教程 > 在Linux系统中配置SSH密钥认证

在Linux系统中配置SSH密钥认证

SSH(SecureShell)是一种加密的网络协议,广泛的应用在不安全的网络上安全地运行网络服务。SSH提供了加密的通信和身份验证的方法,这会让数据传输变得更加安全可靠。SSH密钥身份验证是一种更安全的身份验证方式,相较于传统的密码身份验证更为推荐。在安全性方面,SSH密钥身份验证提供了更高的保护级别,因为它基于公钥和私钥的加密机制,有效减少了密码被破解的风险。密码身份验证在很多情况下并不十分安全,因为密码可能会被猜测、被破解,甚至在传输过程中受到中间人攻击的威胁。这强调了采用更加复杂和多层次的安全措施

本文目录

    SSH(Secure Shell)是一种加密的网络协议,广泛的应用在不安全的网络上安全地运行网络服务。

    SSH提供了加密的通信和身份验证的方法,这会让数据传输变得更加安全可靠。

    SSH密钥身份验证是一种更安全的身份验证方式,相较于传统的密码身份验证更为推荐。在安全性方面,SSH密钥身份验证提供了更高的保护级别,因为它基于公钥和私钥的加密机制,有效减少了密码被破解的风险。

    密码身份验证在很多情况下并不十分安全,因为密码可能会被猜测、被破解,甚至在传输过程中受到中间人攻击的威胁。这强调了采用更加复杂和多层次的安全措施的重要性,以确保用户的身份和数据得到更有效的保护。

    而密钥身份验证是通过使用公钥和私钥的组合,这大大增加了安全性。

    用户的私钥被保存在本地,而公钥则存储在远程服务器上。这种安排增加了安全性,即使攻击者截获了公钥,也难以反向推导出私钥。这种方法提供了更可靠的身份验证方式。

    如何在Linux系统中设置SSH密钥身份验证

    生成SSH密钥对

    首先,需要确保你的Linux系统上已经安装了OpenSSH工具。

    大多数Linux发行版通常会预装该工具,如果你的系统没有安装,可以通过包管理器轻松安装。

    在Debian/Ubuntu上使用apt安装OpenSSH:

    sudo apt update
    sudo apt install openssh-client openssh-server

    在Red Hat/CentOS上使用yum安装OpenSSH:

    sudo yum install openssh-clients openssh-server

    使用ssh-keygen生成密钥对

    一旦安装了OpenSSH,你就可以使用ssh-keygen命令生成SSH密钥对。

    命令的基本用法如下:

    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    • -t rsa 指定密钥类型为 RSA。
    • -b 4096 指定密钥长度为 4096 比特,提高安全性。
    • -C "your_email@example.com" 添加注释,一般用你的邮箱地址。

    生成密钥对后,你可以选择将其存储在默认位置(~/.ssh/ 目录下)或选择其他位置。

    生成的密钥对包括两个文件:私钥文件(id_rsa)和公钥文件(id_rsa.pub)。私钥文件存储在本地,而公钥文件则需要被复制到远程服务器上。

    私钥是敏感信息,必须妥善保存。公钥则是用于身份验证的公开信息。

    密钥的存储和管理

    默认情况下,生成的 SSH 密钥对会存储在用户的 ~/.ssh/ 目录下。这个目录包含了两个主要文件:id_rsa(私钥)和 id_rsa.pub(公钥)。这种设置是为了方便用户在使用 SSH 时能够轻松找到和管理密钥。

    然而,有时出于安全或组织的考虑,你可能想要将密钥存储在其他位置。这可以通过在生成密钥对时指定存储路径来实现。

    例如:

    ssh-keygen -t rsa -b 4096 -f /path/to/your/keys/my_key -C "your_email@example.com"

    这样会将私钥存储为 /path/to/your/keys/my_key,公钥存储为 /path/to/your/keys/my_key.pub。

    SSH 密钥代理是一个可以管理 SSH 私钥的程序,可以在一次登录后将私钥的解密密码缓存起来,以便后续的 SSH 操作无需再次输入密码。

    1、启动 SSH 代理:

    eval "$(ssh-agent -s)"

    2、添加私钥到代理:

    ssh-add ~/.ssh/id_rsa

    这样,你就不需要每次 SSH 登录都输入私钥密码了,提高了使用的便利性和安全性。

    在实际使用中,你可能会有多个密钥对,用于不同的服务器或用途。

    为了更好地管理这些密钥对,可以使用 SSH 配置文件或密钥文件的别名。

    配置SSH服务器

    登录到目标服务器

    在你能够使用 SSH 密钥身份验证登录到目标服务器之前,确保目标服务器上已经启用了 SSH 服务。在大多数 Linux 系统中,默认情况下,SSH 服务是启动的。

    ssh username@your_server_ip

    确保替换 username 为你的用户名,your_server_ip 为目标服务器的 IP 地址。这将尝试使用默认的密码身份验证登录。

    手动安装公钥

    手动安装公钥是一种基本的方法,它涉及将你的公钥内容添加到目标服务器上的 ~/.ssh/authorized_keys 文件中。

    1、将本地公钥内容复制到剪贴板:

    cat ~/.ssh/id_rsa.pub

    2、在目标服务器上,使用文本编辑器打开 ~/.ssh/authorized_keys 文件:

    nano ~/.ssh/authorized_keys

    3、将剪贴板上的公钥内容粘贴到文件末尾,并保存文件。

    4、回到本地机器,尝试使用密钥身份验证登录:

    ssh username@your_server_ip

    通过ssh-copy-id简化公钥部署

    ssh-copy-id 命令可以简化将本地公钥复制到远程服务器的过程。

    这个命令会自动处理将公钥添加到目标服务器的 ~/.ssh/authorized_keys 文件中。

    ssh-copy-id username@your_server_ip

    确保替换 username 为你的用户名,your_server_ip 为目标服务器的 IP 地址。这个命令将提示你输入用户密码,然后将本地公钥复制到目标服务器上。

    通过这两种方法,你可以在目标服务器上配置 SSH 密钥身份验证,提高登录的安全性和便利性。

    SSH 配置文件详解

    ~/.ssh/config 文件的作用和结构

    ~/.ssh/config 文件是一个用于配置 SSH 客户端行为的配置文件。

    它允许你为不同的主机设置自定义的配置选项,从而简化 SSH 连接的管理。

    创建 ~/.ssh/config 文件:

    touch ~/.ssh/config

    编辑 ~/.ssh/config 文件:

    nano ~/.ssh/config

    使用别名、端口号等配置项简化SSH连接

    配置文件中可以包含多个主机条目,每个条目定义了连接到远程主机的配置选项。

    以下是一个简单的例子:

    Host example
    HostName your_server_ip
    User username
    Port 2222
    IdentityFile ~/.ssh/id_rsa
    • Host:设置别名,用于代替实际的主机名。
    • HostName:远程主机的 IP 地址或域名。
    • User:连接时使用的用户名。
    • Port:SSH 连接的端口号。
    • IdentityFile:指定用于身份验证的私钥文件路径。

    实际场景中的示例配置文件

    以下是一个更为复杂的 ~/.ssh/config 文件,涵盖了多个主机和配置选项:

    Host work
    HostName work.example.com
    User alice
    Port 22
    IdentityFile ~/.ssh/work_key
    
    Host personal
    HostName personal.example.org
    User bob
    Port 2222
    IdentityFile ~/.ssh/personal_key
    
    Host github
    HostName github.com
    User git
    IdentityFile ~/.ssh/github_key

    这样,你只需要使用别名就能够轻松连接到相应的主机,而不必记住每个主机的详细信息。

    限制和加固SSH访问

    禁用密码身份验证

    禁用密码身份验证是提高 SSH 安全性的重要步骤之一。

    这样,用户只能通过密钥身份验证进行访问,而不再依赖弱密码。

    在sshd_config中禁用密码身份验证:

    1、打开 sshd_config 文件:

    sudo nano /etc/ssh/sshd_config

    2、找到并修改以下行:

    PasswordAuthentication no

    3、保存文件并重新启动 SSH 服务:

    sudo service ssh restart

    使用sshd_config文件设置访问限制

    sshd_config 文件包含了用于配置 SSH 服务器的各种选项。

    通过适当配置,你可以限制用户访问、定义允许登录的用户、设置登录时的认证方式等。

    一些常用的 sshd_config 选项:
    • AllowUsers:指定允许登录的用户列表。
    • DenyUsers:指定禁止登录的用户列表。
    • AllowGroups:指定允许登录的用户组列表。
    • DenyGroups:指定禁止登录的用户组列表。
    • PermitRootLogin:禁用或限制 root 用户的远程登录。
    示例:
    AllowUsers alice bob
    DenyUsers mallory
    AllowGroups sshusers
    DenyGroups badusers
    PermitRootLogin no
    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    软件教程 ssh
    相关文章 更多
    精品专题 更多
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    macOS软件

    正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

    IOS软件

    正软商城iOS软件专区,精选适用于iPhone和iPad的办公、学习、影音、设计、效率及AI应用,提供功能介绍、适用设备、系统要求和正版获取方式等信息。

    AI

    正软商城AI软件专区,汇集AI写作、AI绘画、AI视频、AI办公、AI编程、AI翻译、智能客服和数据分析等人工智能工具,提供功能介绍、适用平台、收费方式及正版购买信息。

    Mac软件 更多
    Aperty macOS版
    Aperty macOS版

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    火山引擎 网页版
    火山引擎 网页版

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    立刻MV 网页版
    立刻MV 网页版

    立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

    蛙蛙写作 网页版
    蛙蛙写作 网页版

    蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

    讯飞智作 网页版
    讯飞智作 网页版

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    超级简历WonderCV 网页版
    超级简历WonderCV 网页版

    超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

    音述AI 网页版
    音述AI 网页版

    音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

    AionClaw macOS版
    AionClaw macOS版

    AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

    Loomy macOS版
    Loomy macOS版

    Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。

    AirBuddy 3 macOS版
    AirBuddy 3 macOS版

    AirBuddy 3 是面向 macOS 的蓝牙外设增强工具,可集中查看 AirPods、Beats 与苹果设备电量,提供快速连接、播放控制、电量提醒、桌面小组件和多台 Mac 外设接力等功能。

    AirServer macOS版
    AirServer macOS版

    AirServer macOS版可把 Mac 转换为无线投屏接收端,通过 AirPlay 或 Google Cast 接收手机、平板和电脑画面,并支持多设备同时连接、高清镜像及会话录制,适合家庭娱乐、课堂教学、会议演示和应用展示。

    AnyDesk macOS版
    AnyDesk macOS版

    AnyDesk macOS版是一款适用于远程办公、设备维护和客户支持的远程桌面工具,可连接并操作异地计算机,支持文件传输、无人值守访问、会话权限控制及跨平台协作。

    WINDOWS 更多
    讯飞绘文 网页版
    讯飞绘文 网页版

    讯飞绘文网页版是科大讯飞推出的AI图文创作与内容运营工具,覆盖热点选题、文章生成、稿件校对、智能配图、排版发布和数据复盘等环节,适合自媒体创作者及内容团队在线使用。

    Maya(Autodesk Maya) Windows版
    Maya(Autodesk Maya) Windows版

    Autodesk Maya 是面向影视、电视、动画和游戏行业的专业三维制作软件,集多边形与 NURBS 建模、角色绑定、关键帧和动作捕捉动画、Bifrost 特效模拟、材质开发及 Arnold 渲染于一体,

    Aperty Windows版
    Aperty Windows版

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    火山引擎 网页版
    火山引擎 网页版

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    立刻MV 网页版
    立刻MV 网页版

    立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

    蛙蛙写作 网页版
    蛙蛙写作 网页版

    蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

    讯飞智作 网页版
    讯飞智作 网页版

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    超级简历WonderCV 网页版
    超级简历WonderCV 网页版

    超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

    音述AI 网页版
    音述AI 网页版

    音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

    AionClaw Windows版
    AionClaw Windows版

    AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

    Loomy Windows版
    Loomy Windows版

    Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。

    AirServer Windows版
    AirServer Windows版

    AirServer Windows版可把电脑变成AirPlay、Google Cast和Miracast无线投屏接收端,适合会议演示、课堂教学及家庭大屏分享。发送设备通常无需另装客户端,并可同时接收和智能排列多个镜像会话。