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

【Linux】SSH:免密登录

配置 SSH 的免密登录(基于公钥认证)可实现无需输入密码即可登录远程主机,常用于自动化脚本、服务器集群、DevOps 等场景。


生成本地 SSH 密钥对(若尚未存在)

在本地客户端执行:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  • 默认生成:
    • 私钥:~/.ssh/id_rsa
    • 公钥:~/.ssh/id_rsa.pub
  • 一路回车即可,不建议设置 passphrase(否则仍需输入密码)

将公钥复制到远程主机

推荐方式:使用 ssh-copy-id

ssh-copy-id username@remote_host
  • 例:ssh-copy-id root@192.168.1.100
  • 首次会提示输入远程主机密码,后续不再需要

替代方式:手动复制公钥

cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh &&cat >> ~/.ssh/authorized_keys &&chmod 600 ~/.ssh/authorized_keys &&chmod 700 ~/.ssh
"

测试免密登录是否生效

ssh username@remote_host
  • 若无提示输入密码,则表示配置成功 ✅

简化登录命令(可选)

在本地编辑:

vi ~/.ssh/config

添加:

Host myserverHostName 192.168.1.100User rootIdentityFile ~/.ssh/id_rsa

之后可直接使用:

ssh myserver

撤销免密登录

  1. 登录远程主机:

    ssh username@remote_host
    
  2. 编辑远程的 authorized_keys 文件:

    vi ~/.ssh/authorized_keys
    
  3. 找到并删除对应的公钥(通过 your_email@example.com 或开头的 key 片段识别)

  4. 保存并退出


启用或禁用 SSH 密码登录

1. 编辑远程主机的 SSH 配置文件:

sudo vi /etc/ssh/sshd_config

2. 常用配置项:

# 启用密码登录(默认):
PasswordAuthentication yes# 禁用密码登录(推荐用于已配置好公钥登录的场景):
# PasswordAuthentication no# 建议同时设置:
ChallengeResponseAuthentication no
UsePAM yes

3. 配置项含义对比表:

配置项含义与“密码登录”关系
PasswordAuthentication是否允许传统用户名+密码登录✅ 直接控制
ChallengeResponseAuthentication是否启用交互式认证(如 OTP、验证码)❌ 非传统密码登录
UsePAM是否启用 PAM 系统(辅助密码或多因子认证)⚠️ 有辅助作用

4. 重启 SSH 服务:

# Ubuntu / Debian:
sudo systemctl restart ssh# CentOS / RHEL:
sudo systemctl restart sshd
http://www.xdnf.cn/news/926065.html

相关文章:

  • Egg.js框架的基本介绍与用法,以及如何连接数据库并对数据库进行增删改查
  • Go 语言中的 make 函数详解
  • AI推理服务的高可用架构设计
  • 第9篇:数据库中间件的容错机制与高可用架构设计
  • 负载均衡--堆/优先队列模拟
  • 抗辐照MCU在卫星载荷电机控制器中的实践探索
  • SDC命令详解:使用set_propagated_clock命令进行约束
  • JDK21深度解密 Day 14:生产环境监控与排错
  • 什么是hint热点行更新呢?
  • matlab 2024a ​工具箱Aerospsce Toolbox报错​
  • 【Linux】Linux进程间通讯-共享内存
  • curl 如何发送一个邮件 ?
  • selenium自动化测试学习心得1
  • 阿里巴巴ROLL:大规模强化学习优化的高效易用解决方案
  • CDTJDT是开发SAST工具的有力引擎
  • Java 并发编程系列(上篇):多线程深入解析
  • Java Map完全指南:从基础到高级应用
  • Cell-o1:强化学习训练LLM解决单细胞推理问题
  • 基于Ubuntu22.04安装SVN服务器之仓库迁移
  • 基于IDA的bindiff使用
  • Java并发编程之并发编程的调试与测试
  • 【MLLM】字节BAGEL多模态理解和生成统一模型
  • 数字通信复习
  • RAG检索系统的两大核心利器——Embedding模型和Rerank模型
  • ELF文件,静态链接(Linux)
  • 算法练习-回溯
  • 指针与函数参数传递详解 —— 值传递与地址传递的区别及应用
  • Postman测试学习(1)
  • ABAP EXCEL导入换行符
  • A Survey on the Memory Mechanism of Large Language Model based Agents