【SSH免密】Linux使用PublicKey公钥免密登录服务器

在SSH(Secure Shell)中,公钥(Public Key)和私钥(Private Key)是一对密钥,用于实现安全的身份验证和加密通信

  • 公钥(Public Key):可以公开分发,通常上传到服务器或其他客户端,服务器会将公钥存储在用户的授权文件(如~/.ssh/authorized_keys)中
  • 私钥(Private Key):必须严格保密,不能泄露。私钥用于在客户端进行身份验证,只有持有正确私钥的用户才能通过SSH连接到服务器

生成本地密钥

打开终端,运行以下命令:

bash 复制代码
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。还可以选择是否设置密码短语(passphrase),设置密码短语可以增加额外的安全层。

生成的密钥对包括:

复制代码
id_rsa:私钥文件。
id_rsa.pub:公钥文件

上传密钥到服务器

ssh-copy-id 是一个非常实用的命令行工具,用于将本地用户的公钥复制到远程服务器的 ~/.ssh/authorized_keys 文件中,从而实现免密登录。它简化了手动将公钥添加到远程服务器的过程,终端操作如下:

bash 复制代码
ssh-copy-id -i id_rsa.pub user_name@ip_address

完成操作后提示:
此时在服务器的./ssh/authorized_keys文件中记录了公钥

后续ssh就免密了

相关推荐
Android系统攻城狮2 小时前
Linux PipeWire深度解析之pw_factory_create_object调用流程与实战(七十二)
linux·音频进阶·pipewire音频进阶
lsh曙光2 小时前
playbook剧本(2)--Ansible变量
linux·运维·网络
START_GAME2 小时前
MSSQL$SQL2016
java·服务器·前端
lengjingzju2 小时前
编译与调试完全指南—第14章 系统配置与调优
linux
大鹏的NLP博客3 小时前
通用 Linux 嵌入式板端 C/C++ ABI 与 Glibc 依赖治理规范
linux·c++·交叉编译
tedcloud1234 小时前
book-to-skill 怎么部署?把技术书和项目文档变成 AI Agent 可复用知识
linux·运维·服务器·人工智能·开源
旗开得胜马到成功4 小时前
SK海力士SSD售后翻车:企业备份介质裸奔风险与中科热备技术选型拆解
运维·服务器·网络
瀚高PG实验室4 小时前
SQL优化案例:使用分区表优化SQL查询性能
linux·服务器·数据库·sql·microsoft·postgresql
青禾8374 小时前
Linux 系统信息、权限管理与 Python 并发编程(协程与线程)完全指南
linux·python
2301_800954995 小时前
Linux 常用系统信息与进程管理命令速查
linux·运维·服务器