Linxu几种登陆方式介绍

server/2025/3/6 11:25:36/

Linux 系统除了传统的密码登陆方式外,还提供了多种其他的登陆方法,每种方法都有其独特的优点和缺点。了解这些不同的登陆方式可以帮助你根据自己的需求和安全考虑,选择最合适的登陆方案。以下是 Linux 系统中常见的几种密码登陆之外的登陆方式,以及它们的优缺点:

1、SSH 密钥 (SSH Key) 登陆

  • 工作原理: SSH 密钥登陆使用一对密钥:公钥 (public key) 和私钥 (private key)。你将公钥配置在 Linux 服务器上,而私钥则保存在你的本地计算机上。登陆时,SSH 客户端使用私钥进行加密签名,服务器使用之前配置的公钥进行验证。验证成功后,无需输入密码即可完成登陆。

  • 优点:

    • 安全性更高: 相比密码登陆,SSH 密钥登陆的安全性大大提高。密钥通常更长更复杂,难以被暴力破解。即使密码泄露,攻击者没有私钥也无法登陆。
    • 自动化脚本和程序友好: 密钥认证非常适合自动化脚本和程序,无需在每次运行时手动输入密码。
    • 避免密码疲劳: 对于经常需要登陆服务器的用户,无需反复输入密码,提高效率。
    • 可以禁用密码登陆: 为了进一步提高安全性,可以在服务器上禁用密码登陆,只允许密钥登陆。
  • 缺点:

    • 初始配置较为复杂: 生成密钥对、配置公钥到服务器相对密码登陆稍微复杂,对于新手可能需要学习。
    • 私钥管理: 私钥的安全性至关重要。如果私钥泄露,安全性将大打折扣。需要妥善保管私钥,并可以考虑使用密码保护私钥。
    • 密钥丢失或损坏: 如果私钥丢失或损坏,将无法登陆服务器,需要额外的恢复措施。
    • 不适用于所有场景: 对于某些共享环境或临时访问,密钥登陆可能不如密码登陆方便。

配置 SSH 密钥登陆的基本步骤 (Linux 客户端和 Linux 服务器为例):

1.在客户端生成密钥对

在你的本地 Linux 计算机上打开终端,运行命令 ssh-keygen。按照提示操作,可以选择密钥类型 (例如 RSA, EdDSA),设置密钥文件保存位置和密码 (passphrase,可选,用于保护私钥)。

 

ssh-keygen -t rsa

 2.将公钥复制到服务器:

使用现有的用户名和密码,使用 SSH 连接到服务器,使用您通常用于此类连接的命令行或客户端程序。尝试列出.ssh目录中的文件,检查该目录是否已存在:

ls .ssh

如果没有,您将无法进入该目录,而应该创建它:

mkdir -p .ssh

(请注意目录名开头必须有一个点,这使得该目录成为隐藏目录。)

使用Linux或MacOS客户端:使用 ssh-copy-id 命令将公钥复制到目标 Linux 服务器。确保你已经知道服务器的 IP 地址或域名以及你的用户名。

ssh-copy-id your_username@your_server_ip_or_hostname

或者,你也可以手动复制 ~/.ssh/id_rsa.pub (如果使用 RSA 密钥) 的内容,并添加到服务器上 ~/.ssh/authorized_keys 文件中。~符号表示用户的主目录,代表:/home/username

使用Windows客户端:可以通过 Windows 命令提示符完成此任务。您需要参考之前尝试列出.ssh目录内容的结果,看看它是否包含名为authorized_keys的文件。

A)如果您必须自己创建 .ssh 目录,或者远程服务器还没有 authorized_keys 文件,请在客户端计算机命令行上输入以下内容将公钥复制到服务器上的.ssh目录(如果您将密钥的名称从id_rsa.pub更改,请在此处更改):

scp .ssh/id_rsa.pub user@somedomain:~/.ssh/authorized_keys

 B)如果远程服务器有现有的 authorized_keys 文件,则必须附加新密钥,而不是覆盖现有文件。这非常重要,以便现有用户不会无意中失去访问权限。首先,您将文件复制到远程服务器。然后在远程服务器上,使用 cat 命令将其附加到现有文件:

在客户端上:scp .ssh/id_rsa.pub user@somedomain:~/.ssh

在远程服务器上:cat .ssh/id_rsa.pub >> .ssh/authorized_keys

在远程服务器上:rm .ssh/id_rsa.pub(清理并删除现在不需要的密钥文件)

3.使用私钥登陆

现在你可以使用 ssh 命令登陆服务器,无需输入密码。

ssh your_username@your_server_ip_or_hostname

2、GPG 智能卡 (GPG Smart Card) 登陆

  • 工作原理: GPG 智能卡是一种硬件设备,可以安全地存储 GPG 私钥。智能卡登陆利用存储在智能卡上的 GPG 私钥进行身份验证。系统会验证智能卡上的证书是否有效,以及是否与用户的账户关联。

  • 优点:

    • 极高的安全: 私钥存储在硬件设备中,极难被复制或窃取。智能卡通常具有防篡改和防物理攻击的特性。
    • 便携性: 智能卡可以随身携带,方便在不同的机器上安全登陆。
    • 抗钓鱼攻击: 即使用户误入钓鱼网站,也无法轻易泄露智能卡上的私钥。
    • 多因素认证的基础: 智能卡可以作为多因素认证的一个因素,例如结合 PIN 码使用,进一步提高安全性。
  • 缺点:

    • 成本较高: 需要购买智能卡和智能卡读卡器。
    • 配置复杂: 配置智能卡登陆涉及到 GPG, PAM (Pluggable Authentication Modules) 等组件的配置,较为复杂。
    • 硬件依赖: 需要智能卡读卡器,如果读卡器出现问题,将无法登陆。
    • 不适用于远程访问: 智能卡通常用于物理接触的登陆场景,远程访问可能需要额外的设置。

配置 GPG 智能卡登陆的基本步骤 (大致流程,不同发行版和智能卡型号配置可能有所不同):

1.安装必要的软件包

安装 GPG, OpenSC (用于智能卡驱动), PAM 相关的模块,例如 libpam-poldipam_p11 等。

sudo apt-get install gnupg2 opensc libpam-poldi  # Debian/Ubuntu 示例

 2.生成 GPG 密钥对并导入到智能卡

使用 gpg --card-edit 命令在智能卡上生成或导入 GPG 密钥对。

gpg --card-edit
admin
generate

3.配置 PAM 模块

编辑 PAM 配置文件,例如 /etc/pam.d/common-auth,添加智能卡认证相关的配置行。 具体的配置行取决于你使用的 PAM 模块。

auth    sufficient pam_poldi.so  # pam_poldi 示例
# 或
auth    sufficient pam_p11.so module=opensc_pkcs11.so object=pkcs11:model=piv-II

4.配置 SSH 使用智能卡

配置 SSH 客户端和服务器使用智能卡进行认证。 通常需要在 ~/.ssh/config 中配置 PKCS11Provider

Host your_server_ip_or_hostnamePKCS11Provider /usr/lib/opensc-pkcs11.so

5.测试登陆

插入智能卡,尝试使用 SSH 或本地登陆,系统应该会提示你输入智能卡的 PIN 码进行认证。

3、指纹识别 (Fingerprint Authentication) 登陆

  • 工作原理: 指纹识别登陆利用指纹扫描仪读取用户的指纹,并与预先注册的指纹数据进行比对。如果比对成功,则允许用户登陆。

  • 优点:

    • 方便快捷: 指纹登陆非常方便快捷,无需记忆和输入密码。
    • 一定的安全: 指纹具有一定的唯一性,比弱密码更安全
    • 用户体验好: 生物特征识别技术用户体验良好。
  • 缺点:

    • 安全性相对较低: 指纹容易被伪造或复制,指纹识别的安全性相对密钥和智能卡较低。
    • 硬件依赖: 需要设备配备指纹扫描仪。
    • 隐私问题: 指纹数据属于生物特征信息,涉及一定的隐私问题。
    • 易受环境因素影响: 手指潮湿、脏污、磨损等情况可能影响指纹识别的准确性。
    • 不适用于远程访问和服务器环境: 指纹识别通常用于个人电脑或笔记本电脑的本地登陆。

配置指纹识别登陆的基本步骤 (大致流程,不同发行版和指纹扫描仪型号配置可能有所不同):

1.安装必要的软件包:

安装指纹识别驱动和 PAM 模块,例如 fprintdlibpam-fprintd

sudo apt-get install fprintd libpam-fprintd # Debian/Ubuntu 示例

2.配置 fprintd

使用 fprintd-enroll 命令注册你的指纹。按照提示操作,将你的手指放在指纹扫描仪上多次,完成指纹录入。

fprintd-enroll your_username

3.配置 PAM 模块

编辑 PAM 配置文件,例如 /etc/pam.d/common-auth,添加指纹认证相关的配置行。 

auth    sufficient pam_fprintd.so

4.测试登陆:

重启系统或锁屏后,尝试使用指纹登陆。系统应该会在登陆界面提示你使用指纹。

4、人脸识别 (Face Recognition) 登陆

  • 工作原理: 人脸识别登陆利用摄像头捕捉用户的人脸图像,并与预先注册的人脸数据进行比对。如果比对成功,则允许用户登陆。

  • 优点:

    • 完全无接触: 无需任何物理接触即可完成登陆。
    • 方便快捷: 人脸识别登陆非常快速方便。
    • 用户体验新颖: 生物特征识别技术带来新颖的用户体验。
  • 缺点:

    • 安全性最低: 人脸容易被照片、视频等方式欺骗,人脸识别的安全性在几种方法中相对最低。
    • 隐私问题: 人脸数据属于生物特征信息,涉及严重的隐私问题。
    • 环境依赖: 光线条件、面部遮挡物 (例如眼镜、口罩) 等环境因素会影响人脸识别的准确性。
    • 计算资源消耗: 人脸识别算法需要一定的计算资源。
    • 硬件依赖: 需要设备配备摄像头。
    • 不适用于远程访问和服务器环境: 人脸识别通常用于个人电脑或笔记本电脑的本地登陆。

配置人脸识别登陆的基本步骤 (大致流程,不同发行版和人脸识别软件配置可能有所不同):

1.安装必要的人脸识别软件和 PAM 模块:

例如 howdy (基于 face_recognition 库) 和 libpam-howdy

sudo apt-get install python3-pip  # 如果没有 pip
sudo pip3 install face_recognition howdy
sudo apt-get install libpam-howdy # Debian/Ubuntu 示例

 2.配置 howdy

使用 sudo howdy add 命令注册你的人脸。按照提示操作,让摄像头捕捉你的人脸图像。

sudo howdy add your_username

3.配置 PAM 模块

编辑 PAM 配置文件,例如 /etc/pam.d/common-auth,添加人脸识别认证相关的配置行。 

auth    sufficient pam_howdy.so

 4.测试登陆:

重启系统或锁屏后,尝试使用人脸登陆。系统应该会在登陆界面提示你使用人脸识别。

5、总结和选择建议

登陆方式安全便利性成本复杂性适用场景
SSH 密钥非常高服务器管理, 自动化, 开发环境
GPG 智能卡极高安全性需求, 企业环境, 敏感数据保护
指纹识别中等非常高低 (设备自带)个人电脑/笔记本本地登陆, 追求便利性
人脸识别非常高低 (设备自带)个人电脑/笔记本本地登陆, 追求极致便利性
密码登陆 (传统)低到中等通用场景, 初始配置, 紧急情况备用

导出到 Google 表格

选择建议:

  • 服务器管理和自动化: SSH 密钥登陆 是最佳选择,兼顾安全性和便利性。
  • 安全性需求: GPG 智能卡登陆 提供极高的安全性,适用于企业和敏感数据保护场景。
  • 个人电脑/笔记本本地登陆,追求便利性: 指纹识别人脸识别 可以提供非常方便快捷的登陆体验,但需要权衡安全性与便利性。
  • 密码登陆: 仍然是最基础和通用的登陆方式,建议作为所有系统的默认和备用登陆方式,并配合强密码策略。

在实际应用中,可以根据自身的需求和安全策略,选择一种或多种登陆方式组合使用。例如,可以同时启用 SSH 密钥登陆和密码登陆,或者在本地电脑上使用指纹/人脸识别登陆,在服务器管理中使用 SSH 密钥登陆。 无论选择哪种登陆方式,都应该定期审查安全配置,并保持系统和软件更新,以应对不断变化的安全威胁。


http://www.ppmy.cn/server/172857.html

相关文章

ESP32-P4 支持哪些 RISC-V 汇编指令?

RISC-V 采用模块化设计,指令集由多个扩展模块组成,最常见的包括: I(Integer)—— 基础整数指令集(所有 RISC-V 处理器必备)。M(Multiply/Divide)—— 乘法和除法指令。A…

Qt开发⑫Qt界面优化之CSS_选择器_控件样式

目录 1. CSS背景介绍 2. 基本语法 3. CSS 设置方式 3.1 指定控件样式设置 3.2 全局样式设置 3.3 从文件加载样式表 3.4 使用 Qt Designer 编辑样式 4. 选择器 4.1 选择器概况 4.2 子控件选择器 4.3 伪类选择器 5. 样式属性_盒模型 5.1 设置边框和内边距 5.2 设置…

el-select的下拉选择框插入el-checkbox

el-check注意这里要使用model-value绑定数据 <el-selectv-model"selectDevice"multiplecollapse-tags:multiple-limit"5"style"width: 200px"popper-class"select-popover-class" ><el-optionv-for"item in deviceList…

Web3 的未来:去中心化如何重塑互联网

Web3 的未来&#xff1a;去中心化如何重塑互联网 在这个信息爆炸的时代&#xff0c;我们正站在一个新的技术革命的门槛上——Web3。Web3 不仅仅是一个技术术语&#xff0c;它代表了一种全新的互联网理念&#xff0c;即去中心化。这种理念正在逐步改变我们对互联网的使用方式和…

【Linux】磁盘结构 | 文件系统 | inode(二)

目录 前言&#xff1a; 一、磁盘结构 1.磁盘的存储结构 2.LBA逻辑地址 2.CHS寻址方式 二、块 三、OS如何对磁盘管理&#xff1f; 1.分区 2.ext2文件系统 3.inode文件属性数据集合 4.inode Table 和 Data blocks 5.inode Bitmap 和 block Bitmap 6.删除文件 7.GD…

Linux nohup

nohup 是 Linux 系统中一个非常实用的命令&#xff0c;它的英文全称是 “no hang up”&#xff08;不挂断&#xff09;&#xff0c;主要用于在用户退出登录或者终端会话关闭后&#xff0c;让指定的程序在后台持续运行&#xff0c;而不会受到 HUP&#xff08;hangup&#xff09;…

关于2023新版PyCharm的使用

考虑到大家AI编程的需要&#xff0c;建议大家安装新版Python解释器和新版PyCharm&#xff0c;下载地址都可以官网进行&#xff1a; Python&#xff1a;Download Python | Python.org&#xff08;可以根据需要自行选择&#xff0c;建议选择3.11&#xff0c;保持交流版本一致&am…

Linux驱动开发之ADC驱动与基础应用编程

目录 ADC简介 SARADC 设备树配置 IIO子系统 应用程序编写 运行测试 ADC简介 模拟量指的是表示各种实际信息的物理量&#xff0c;可以是电量&#xff08;如电压&#xff0c;电流等&#xff09;&#xff0c;也可以是来自传感器的非电量&#xff08;如压力&#xff0c;温度…