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

SSH 免密登录快速教程

日常开发中,SSH 可能是程序员最常用的工具之一。

只要你需要连接远程服务器,就绕不开它。但是,每次登录都要输入长长的一串密码,不仅繁琐,而且容易被暴力破解。

更好的解决方案是SSH 免密登录(Public Key Authentication)。配置好之后,只要敲一行命令,就能瞬间登录服务器,安全又省心。

本文带你快速搞定 SSH 免密登录。


一、快速上手

免密登录的本质,是本地电脑生成一对“钥匙”(公钥和私钥),然后把“公钥”丢给远程服务器。服务器认出了你的公钥,就允许你的私钥免密进入。

只需要简单的三步即可完成。

第一步:在本地电脑生成密钥对

打开本地电脑的终端(Terminal),输入以下命令:

$ ssh-keygen -t ed25519 -C "your_email@example.com"

注意:这里使用了 ed25519 算法,它是目前业界推荐的最安全、性能最好的非对称加密算法。如果你连接的是非常老的服务器,可以将 -t ed25519 替换为 -t rsa -b 4096

按下回车后,系统会提示你选择保存路径和设置私钥密码(passphrase)。为了“完全免密”,这里一路按回车键即可。

完成后,你的本地 ~/.ssh 目录下会多出两个文件:

  • id_ed25519(私钥,打死也不能告诉别人)
  • id_ed25519.pub(公钥,用来发给服务器)

第二步:将公钥复制到远程服务器

接下来,我们需要把刚刚生成的公钥,安装到远程服务器上。OpenSSH 提供了一个非常方便的命令:

$ ssh-copy-id username@remote_host

(请把 username 换成你的服务器用户名,remote_host 换成服务器的 IP 或域名。)

执行该命令后,终端会要求你输入一次服务器的密码。输入成功后,公钥就会被自动追加到服务器的 ~/.ssh/authorized_keys 文件中。

第三步:测试登录

现在,你可以尝试再次登录服务器:

$ ssh username@remote_host

如果你发现没有弹出密码输入提示,直接就进入了服务器终端,那么恭喜你,免密登录已经配置成功了!


二、常用命令速查表

在实际工作中,你可能还会遇到指定端口、多密钥管理等情况。以下是最常用的 SSH 密钥与免密登录相关命令:

场景需求 常用命令 说明
生成现代安全密钥 ssh-keygen -t ed25519 -C "备注" 生成目前最推荐的 ED25519 格式密钥。
生成传统 RSA 密钥 ssh-keygen -t rsa -b 4096 兼容老旧服务器时使用,建议长度 4096 位。
一键上传公钥 ssh-copy-id user@host 将本地默认公钥复制到服务器。
指定端口上传公钥 ssh-copy-id -p 2222 user@host 如果服务器 SSH 端口不是 22,需用 -p 指定。
手动上传公钥
(无 ssh-copy-id 时)
cat ~/.ssh/id_rsa.pub | ssh user@host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" 通过管道将本地公钥写入远程服务器文件。
指定私钥文件登录 ssh -i ~/.ssh/my_custom_key user@host 当你有多个私钥时,手动指定使用哪一把钥匙登录。
查看 SSH 登录日志 ssh -v user@host 加上 -v 参数可以输出详细的 debug 信息,排错必备。

三、补充说明:如何彻底禁止密码登录?

配置好免密登录后,为了防止黑客暴力破解密码,强烈建议在服务器端彻底关闭密码登录功能。

你可以登录服务器,编辑 /etc/ssh/sshd_config 文件:

# 找到 PasswordAuthentication 这一行,将其改为 no
PasswordAuthentication no

保存后,重启 SSH 服务让配置生效(通常是 sudo systemctl restart sshsshd)。这样,这台服务器就只认私钥,不认密码了。


四、权威参考链接

如果你想深入了解 SSH 的更多高级用法和底层原理,可以参考以下权威文档:

  1. OpenSSH 官方手册:ssh(1) - OpenSSH manual page
  2. GitHub 官方文档:Generating a new SSH key and adding it to the ssh-agent
  3. Arch Linux Wiki (SSH 密钥):SSH keys - ArchWiki
http://www.jsqmd.com/news/421934/

相关文章:

  • 基于flask和python框架的高校教材征订管理系统的设计与实现-vue pycharm django
  • 基于flask和python框架的服装销售商城平台-vue pycharm django
  • 使用Quick3D粒子的雨效果
  • 基于flask和python框架的求职招聘网站-vue pycharm django
  • 2D渲染-介绍Qt Canvas Painter
  • 基于flask和python框架的热门车型汽车推荐网站-vue pycharm django
  • 2026年2月拱形拼装钢波纹管供货厂家,涵洞工程资质案例解析 - 品牌鉴赏师
  • 保姆级AI编程提示词教学!前端开发专属,粘贴即用高效提效
  • 2026银狐(SilverFox)病毒防护服务公司推荐排行 品质臻选榜 智能预警/全周期运维/跨国适配 - 极欧测评
  • Qt Quick认证测试已发布
  • RAG、Agent、MCP、Skill一句话讲清_AI_底层
  • KingbaseES 共享锁(SHARE)与排他锁(EXCLUSIVE)详解及测试复现
  • Redis 分布式锁:原理、实现与高并发场景下的坑
  • 新鲜出炉!2026银狐(SilverFox)病毒防护服务公司推荐排行 全周期防护/漏洞预警/多行业适配 - 极欧测评
  • 【Azure App Service】记录App Service Kudu站点的File Manger中无法查看文件列表的原因
  • 企业Agent落地避坑指南:从无效堆砌到精准实战(非常详细),收藏这一篇就够了!
  • 1654161
  • 题解:洛谷 B2149 求三角形面积
  • 2026年2月袖口式热收缩膜包装机厂家推荐,防尘防潮包装实力工厂 - 品牌鉴赏师
  • 2026年2月冷拉伸套膜机工厂推荐,无需加热节能型套膜设备 - 品牌鉴赏师
  • 2026银狐(SilverFox)病毒防护服务公司推荐排行 高口碑榜 智能监测/应急处置/全场景防护 - 极欧测评
  • 书店“书籍推荐数字海报”,自动更新每日新书。
  • 从零部署交易所核心源码:完整实操指南(附避坑手册)
  • 计算机毕业设计springboot固定线路往返公益平台 SpringBoot框架下的社区通勤拼车与共享出行服务平台 基于SpringBoot的定制化公交线路与公益合乘管理系统
  • IDEA启动SpringBoot项目时使用mvn exec:exec启动的解决办法
  • TypeScript - 类型断言 Type Assertion(通俗易懂的详细教程)
  • 政企优选!2026银狐(SilverFox)病毒防护服务公司推荐排行 重保级防护/漏洞溯源/全球化服务 - 极欧测评
  • 计算机毕业设计springboot古镇旅游路线规划网站 SpringBoot框架下的历史文化名镇智能导览与行程定制平台 基于SpringBoot的传统村落文化旅游数字化服务系统
  • 2026银狐(SilverFox)病毒防护服务公司推荐排行 实力优选榜 精准查杀/智能防御/全行业适配 - 极欧测评
  • Typescript - type 类型别名(通俗易懂教程)