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 连接服务器。如果一切配置正确,这次系统不会再提示你输入密码,而是会直接显示服务器的欢迎信息并成功登录!

相关推荐
冰封之寂10 小时前
Docker 资源管理终极指南:CPU、内存与 IO 的精细化控制
linux·运维·服务器·docker·云计算
云计算磊哥@12 小时前
运维开发宝典058-大型网站nginx服务器管理全集4
服务器·nginx·运维开发
酷可达拉斯13 小时前
Linux操作系统-shell编程之Grep与正则表达式
linux·运维·服务器·正则表达式·centos
玖玥拾16 小时前
Unity 3D 笔记(十四)Unity/C# Socket 网络笔记3
服务器·网络·unity·c#
三84418 小时前
使用Samba/NFS实现文件共享/自动挂载共享目录/autofs自动挂载服务
linux·服务器·网络
高铭杰18 小时前
万物皆可KV(2)SurrealDB 存储布局分析
linux·服务器
万事可爱^18 小时前
Claude 新发布的 Opus 5,系统提示语删了 80%,半价还能逼近 Fable 5
android·服务器·数据库·人工智能·claude
玖玥拾18 小时前
Unity 3D 笔记(十七)Unity/C# Socket 网络笔记6
服务器·网络·unity·c#
Jerry小杰19 小时前
运维神器|单端口搞定多台内网SSH!frp端口复用终极教程
运维·ssh
其实防守也摸鱼19 小时前
GitHub开源项目破圈方法论:从技术自嗨到生态共赢
服务器·数据库·学习·开源·github·命令行·linux系统