当前位置:

首页 > 软件教程 > 在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
    相关文章 更多
    电脑连不上 Wi-Fi 显示“身份验证失败”
    电脑连不上 Wi-Fi 显示“身份验证失败”

    “身份验证失败”主因是系统与路由器认证握手异常,需依次执行:忘记旧网络重连、禁用IEEE 802.1X认证、更新无线网卡驱动、调整路由器为WPA2/WPA3混合加密、重置网络协议栈。电脑连上 Wi-Fi 时反复弹出“身份验证失败”提示,即使密码确认无误、路由器信号满格,问题也大概率出在系统与路由器之

    顺丰小哥如何找回账号-顺丰小哥账号找回及身份验证方法
    顺丰小哥如何找回账号-顺丰小哥账号找回及身份验证方法

    在数字化时代,账号安全几乎成了每个人的必修课。对于顺丰小哥来说,一旦不慎丢失账号,那可是直接影响生计的大事。那么,遇到这种情况,究竟该怎么找回?别急,办法其实不少。 找回账号的常见方式 手机号找回 绝大多数情况下,顺丰小哥注册账号时都会绑定手机号。如果忘记密码,最简单的办法就是通过手机号重置。在登录

    Mac终端怎么使用Touch ID进行身份验证?
    Mac终端怎么使用Touch ID进行身份验证?

    经常用macOS终端的朋友肯定遇到过这种情况——执行sudo命令时系统非要你输入密码,麻烦不说,还拖慢效率。其实完全可以让Touch ID来代劳,省去敲键盘的功夫。这篇指南手把手教你搞定,整个过程只需要几分钟。 设置 先打开终端应用(Terminal.app),可以在“应用程序 > 实用工具”里找到

    如何在Yii框架中使用身份验证和授权?
    如何在Yii框架中使用身份验证和授权?

    Yii是一个流行的PHP框架,被广泛应用于Web应用程序的开发。在开发过程中,身份验证(authentication)和授权(authorization)是必不可少的安全机制。在本文中,我们将介绍如何在Yii框架中使用身份验证和授权。身份验证身份验证是确保用户是其所声称的身份的过程。在Yii框架中,可以使用内置的身份验证类或定制的身份验证类。下面我们将介绍如

    Git安装教程及配置指南
    Git安装教程及配置指南

    电脑重装系统后,Git作为日常必备工具,需重新安装和配置。安装过程如下:首先,下载适用于Windows系统的Git安装包。考虑到官网下载速度可能较慢,建议使用国内镜像站点进行下载。安装说明:(1)图标组件(Additionicons):选择是否在桌面创建Git的快捷方式。(2)桌面浏览(WindowsExplorerintegration):选择浏览源码的方式,是使用Bash还是GitGUI工具。(3)关联配置文件:决定是否关联Git配置文件,主要影响文本编辑器的样式显示。(4)关联shell脚本

    SSH登录远程服务器的优雅方法
    SSH登录远程服务器的优雅方法

    作为一名生信工程师,日常工作离不开与服务器的交互,如何高效地登录到远程服务器是必备技能。通常有以下两种登录方法:通过专用软件登录,常见的有:Xshell,一个收费软件(支持平台:Windows,Mac,Linux等);SecureCRT,另一个收费软件(仅支持Windows)。通过终端利用SSH连接,这种方法的前提是你使用的是Unix-like系统,如:Mac,可以使用自带终端或iTerm2(推荐);Linux(如Ubuntu,Centos等);Windows10可以通过安装Ubuntu子系统来实

    七款常用Linux远程连接工具推荐
    七款常用Linux远程连接工具推荐

    声明:本人坚决反对利用文章内容进行恶意攻击行为,一切错误行为必将受到惩罚,绿色网络需要我们共同维护,建议大家在了解技术原理的基础上,更好地维护个人信息安全、企业安全、国家安全。XshellXshell是一款功能强大的安全终端模拟软件,支持SSH1、SSH2以及Windows平台的TELNET协议。通过Xshell,用户可以在Windows环境下方便地访问和控制远程不同系统的服务器,实现远程终端管理。官网:https://www.netsarang.com/zh/xshell/Secur

    Linux系统规划安装与远程管理全攻略
    Linux系统规划安装与远程管理全攻略

    在进行Linux系统的硬盘规划时,必须根据服务项目来决定分区的大小和分配。例如,如果系统是邮件主机,通常需要为/var分配几个GB的空间,以确保邮件存储空间充足。另一方面,如果是多用户多终端主机,/home分区通常需要更大的空间。这些规划都与预期的主机服务类型密切相关。我的VMware中的CentOS分区如下图所示(可以使用df-h命令查看):/boot分区用于存储Linux的Grub(引导加载程序)和内核源码,通常分配200MB就足够了。swap分区没有对应的目录,只能由系统访问,相当于Linux

    Windows 下 Git 克隆 GitLab 代码教程
    Windows 下 Git 克隆 GitLab 代码教程

    读者提问:『阿常你好,Windows下Git拉Gitlab代码的操作步骤可以分享一下吗?』阿常回答:当然可以,总共分为五个步骤。一、在Windows上安装Git你可以从官方网站下载安装包:https://git-scm.com/download/win选择StandaloneInstaller(安装版)进行安装。请注意,Portable("thumbdriveedition")是绿色免安装版,不会添加右键菜单的快捷方式。二、注册Gitlab账户注册时请记住你的用户名和邮箱。

    win7秘钥
    win7秘钥

    win7黑屏是很多同学遇到过的最头痛的问题,今天小编就手把手教你解决windows7黑屏的问题,出现这种情况主要有以下两个原因:一:您的windows7系统试用期已过。二.您采取了微软不认可的激活方法。首先,您需要找到可用的Windows7密钥。今天,我们为您提供了最后一批珍藏的Windows7旗舰版激活密钥。每个密钥都有时效性和激活次数限制。如果您遇到密钥失效或用完的情况,请关注后在私信中回复“111”,我们将为您提供最新可用的密钥。windows7旗舰版激活密钥:236TW-X778T-8MV9F-9

    查看更多
    精品专题 更多
    装机必备
    装机必备

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

    Windows
    Windows

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

    PDF教程
    PDF教程

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

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

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

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

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

    Aperty macOS版
    Aperty macOS版
    macOS

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

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

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

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

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

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。