SSH密钥配置(免密连接远程服务器)

1、在本地生成密钥对(本地电脑)

打开你本地电脑的终端(Terminal / PowerShell / CMD),运行:

复制代码
ssh-keygen -t ed25519 -C "用户名(用户-密钥对应的)"

运行后,系统会连续问你三个问题,一般情况下全部直接按回车(Enter)即可:

  1. Enter file in which to save the key... (提示你保存路径):直接按回车,保存在默认路径 ~/.ssh/id_ed25519

  2. Enter passphrase (empty for no passphrase): (提示你设置私钥密码):直接按回车留空。如果你设置了密码,以后每次用密钥登录还是要输这个密码,就失去了"免密"的意义。

  3. Enter same passphrase again: (确认密码):再次按回车。

完成后,你的本地电脑里就有了 id_ed25519(私钥,自己藏好)和 id_ed25519.pub(公钥,准备发给服务器)。

2、获取你的公钥内容(本地电脑)

在本地电脑的终端运行以下命令,查看公钥内容:

复制代码
cat ~/.ssh/id_ed25519.pub

终端会输出一长串字符(以 ssh-ed25519 开头,以你的邮箱结尾)。用鼠标选中并复制这一整段内容。

3、将公钥写入远程服务器(远程服务器)

这一步的目的是把刚刚复制的"锁(公钥)"装到服务器上。

  • 正常登录服务器:用密码通过 SSH 登录到你的远程服务器。

  • 确保 .ssh 目录存在:在服务器终端运行:

    复制代码
    mkdir -p ~/.ssh
    chmod 700 ~/.ssh
  • 打开 authorized_keys 文件: 如果你是用 VS Code 连接的服务器,此时运行你之前提到的命令:

    复制代码
    code ~/.ssh/authorized_keys
  • 粘贴并保存:把第二步中复制的那一长串公钥内容,粘贴到这个文件中。如果文件里已经有别的公钥了,就另起一行粘贴。保存并关闭文件。

  • 设置严格的权限(非常重要):SSH 对权限要求极高,权限不对会拒绝登录。在服务器终端运行:

    复制代码
    chmod 600 ~/.ssh/authorized_keys

4、测试免密登录(本地电脑)

回到你的本地电脑终端,尝试像往常一样通过 SSH 连接服务器。如果一切配置正确,这次系统不会再提示你输入密码,而是会直接显示服务器的欢迎信息并成功登录!

相关推荐
fiveym1 天前
01 - iPXE + Clonezilla 网络装机原理解析
linux·运维·服务器·网络
虎头金猫1 天前
如何在群晖NAS上通过Docker部署CloudSaver?群晖部署CloudSaver教程|聚合资源搜索并实现远程访问
运维·服务器·网络·python·docker·容器·pandas
dog2501 天前
网络优化,还是降低各阶矩
服务器·网络·php
非凡ghost1 天前
分区助手:Windows 磁盘管理的“瑞士军刀“,分区调整不再怕丢数据
服务器·windows·电脑·软件需求
许彰午1 天前
# allbytaskid——一个接口扛六个DataStore
运维·服务器·php
吠品1 天前
Java byte数组与String互转:编码细节与踩坑记录
java·linux·服务器
木白CPP1 天前
Linux 驱动UART子系统源码分析
linux·运维·服务器·驱动开发·嵌入式硬件·开源软件
Titan20242 天前
Linux网络基础知识
linux·服务器·网络·c++·学习
Titan20242 天前
Linux网络学习:套接字、UDP的封装与应用
linux·服务器·开发语言·网络·c++
-今昭-2 天前
Logstash 管理
java·服务器·前端