当前位置: 首页 > news >正文

Linxu几种登陆方式介绍

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_hostname
    PKCS11Provider /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 密钥登陆。 无论选择哪种登陆方式,都应该定期审查安全配置,并保持系统和软件更新,以应对不断变化的安全威胁。

相关文章:

  • 基于SSM+MySQL的二手书籍交易系统
  • 【零基础到精通Java合集】第二十集:Java内存模型-堆、栈、方法区
  • 【AI Guide】AI面试攻略只用看这一篇就够了!力争做全网最全的AI面试攻略——大模型(四十五)模型评估
  • 《数据治理破局:DataWorks中AI驱动流程的自修复之道》
  • Jadx Gui 的详细介绍、安装指南、使用方法及配置说明
  • 力扣 Hot 100 刷题记录 - 搜索二维矩阵 II
  • VisActor/VTable - 自定义图标
  • 【大模型技术】LlamaFactory 的原理解析与应用
  • 专门为高速连续扫描设计的TDI工业相机
  • MATLAB仿真:涡旋光束光强和相位分布同时展示
  • golang深度学习-性能分析
  • Julia安装与Jupyter内核配置
  • 多线程-JUC
  • vue中Axios的封装和API接口的管理(待根据实际项目front进行分析)
  • Leetcode 57: 插入区间
  • 鸿蒙HarmonyOS评论功能小demo
  • 【Docker】容器安全之非root用户运行
  • C++ 中的随机数生成及其应用
  • Dify+DeepSeek | Excel数据一键可视化(创建步骤案例)(echarts助手.yml)(文档表格转图表、根据表格绘制图表、Excel绘制图表)
  • Hive-数据倾斜优化
  • 人民日报读者点题·共同关注:今天我们为什么还需要图书馆?
  • 云南多地突查公职人员违规饮酒:公安局门口开展酒精吹气测试
  • 五粮液董事长:茅台1935已脱离千元价位带,五粮液在千元价位已逐步摆脱其他竞品纠缠
  • 稳住外贸基本盘,这个中部大省出手了
  • 聆听百年唐调正声:唐文治王蘧常吟诵传习的背后
  • 越怕出错越会出错,“墨菲定律”的魔咒该怎么破?