Loading

AIGC标识 免密连接ssh

第一步:在本地生成密钥对(三系统命令通用)

在各自的终端(Windows 请用 PowerShell 或 CMD)执行:

bash

ssh-keygen -t ed25519 -C "your_email@example.com"
  • 一路回车即可(不设密码短语更省事,设了更安全)。
  • 生成位置(注意区分):
    • macOS / Linux~/.ssh/id_ed25519(私钥)和 ~/.ssh/id_ed25519.pub(公钥)
    • WindowsC:\Users\你的用户名\.ssh\id_ed25519.pub

第二步:将公钥写入远程 Linux 服务器的指定目录

远程服务器上的固定写入路径永远是:~/.ssh/authorized_keys。上传方式三种系统各有最佳实践:

操作系统 推荐上传命令(一步到位) 手动写入法(通用备选)
macOS 自带 ssh-copy-id,最优雅: ssh-copy-id user@服务器IP 1. cat ~/.ssh/id_ed25519.pub 复制内容。 2. ssh user@IP 登录服务器。 3. echo "粘贴公钥内容" >> ~/.ssh/authorized_keys
Linux 同上,原生自带: ssh-copy-id user@服务器IP 同上(cat + echo 追加)
Windows 无原生 ssh-copy-id,用管道代替: `type %USERPROFILE%.ssh\id_ed25519.pub ssh user@IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"`

第三步:修改服务器目录权限(杜绝免密失效)

这一步90%的失败都源于此,完成上传后,务必登录 Linux 服务器执行:

bash

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

第四步:配置本地简化文件(可选但推荐)

为了避免每次输入 ssh -p 端口 user@长IP,三系统均在本地用户目录下的 ~/.ssh/config 文件中配置(Windows 路径为 C:\Users\你的用户名\.ssh\config):

ssh-config

Host myserver
    HostName 192.168.1.100
    User root
    Port 22
    IdentityFile ~/.ssh/id_ed25519   # Windows 改为 C:/Users/用户名/.ssh/id_ed25519

配置后,直接输入 ssh myserver 即可免密连接。

posted @ 2026-08-18 16:19  kiiou  阅读(14)  评论(0)    收藏  举报