🗣 Wd提问: 服务器SSH密钥登录
🤖 Ai回答: 我们来详细讲解一下如何在服务器上设置并使用 SSH 密钥登录。这是一种比密码登录更安全、更方便的认证方式。
🛡️ 核心原理
1、 生成密钥对: 在本地计算机(客户端)生成一对密钥:一个私钥(保密,绝不泄露)和一个公钥(可以公开)。
2、 上传公钥: 将公钥上传到目标服务器上,放置在一个特定的文件(通常是 `~/.ssh/authorized_keys`)中。
3、 连接验证: 当你使用 SSH 连接服务器时:
* 服务器会生成一个随机消息,并用你上传的公钥进行加密,然后发送给你。
* 你的本地 SSH 客户端会使用你持有的私钥来解密这个消息。
* 如果能成功解密,则证明你拥有对应的私钥,服务器允许你登录。
📝 详细步骤
🖥️ 1、在本地计算机生成 SSH 密钥对 (如果还没有)
* 打开终端 (Linux/macOS) 或 PowerShell/Git Bash (Windows)。
* 运行以下命令:
bash
ssh-keygen -t rsa -b 4096
或者使用更现代的 ed25519 算法 (推荐)
ssh-keygen -t ed25519
* 系统会提示你:
* Enter file in which to save the key:按 `Enter` 使用默认路径 (`~/.ssh/id_rsa` 或 `~/.ssh/id_ed25519`)。
* Enter passphrase:强烈建议设置一个强密码来加密你的私钥文件。这样即使私钥文件被盗,没有密码也无法使用。输入两次相同的密码(也可以直接按 `Enter` 不设置密码,但不推荐)。
* 完成后,你会在 `~/.ssh/` 目录下看到两个文件:
* `id_rsa` 或 `id_ed25519`:你的私钥。务必妥善保管,不要泄露。
* `id_rsa.pub` 或 `id_ed25519.pub`:你的公钥。这个文件的内容需要上传到服务器。
📤 2、将公钥上传到服务器
有几种常用方法:
方法一:使用 `ssh-copy-id` (最方便)
* 确保服务器当前允许密码登录(完成密钥登录设置后通常会禁用密码登录)。
* 在本地终端运行:
bash
ssh-copy-id -i ~/.ssh/id_ed25519.pub username@server_ip_address
如果公钥文件名不同,请替换 `id_ed25519.pub` 为你的公钥文件名
* 系统会提示你输入服务器用户的密码。
* 命令会自动将你的公钥添加到服务器用户家目录下的 `~/.ssh/authorized_keys` 文件中,并设置适当的权限。
方法二:手动复制粘贴 (如果 `ssh-copy-id` 不可用或服务器不允许密码登录)
* 在本地终端查看公钥内容:
bash
cat ~/.ssh/id_ed25519.pub
* 复制输出的全部内容(通常以 `ssh-ed25519 AAAAC3NzaC1lZ...` 开头)。
* 使用其他方式(如现有的密码 SSH 会话)登录到服务器。
* 在服务器上,确保 `~/.ssh` 目录存在且权限正确:
bash
mkdir -p ~/.ssh 如果目录不存在则创建
chmod 700 ~/.ssh 设置目录权限
* 编辑(或创建)`~/.ssh/authorized_keys` 文件:
bash
nano ~/.ssh/authorized_keys 或者使用 vim 等编辑器
* 将你复制的公钥内容粘贴到文件末尾。
* 保存并退出编辑器。
* 设置 `authorized_keys` 文件的权限:
bash
chmod 600 ~/.ssh/authorized_keys
⚙️ 3、配置服务器 SSH 服务 (可选但强烈推荐)
为了增强安全性,通常在配置好密钥登录后,会禁用密码登录。
* 小心操作! 在完成此步骤前,请务必测试密钥登录是否成功。
* 登录到服务器(使用密钥或现有密码)。
* 编辑 SSH 服务端配置文件 `/etc/ssh/sshd_config`:
bash
sudo nano /etc/ssh/sshd_config 或使用 vim
* 找到并修改以下配置项(如果找不到,可以手动添加):
bash
PubkeyAuthentication yes 确保启用公钥认证
PasswordAuthentication no 禁用密码认证
PermitRootLogin no 强烈建议禁止 root 用户直接登录 (可选但推荐)
* 保存文件。
* 重启 SSH 服务使配置生效:
bash
sudo systemctl restart sshd 适用于使用 systemd 的系统 (如 Ubuntu 16.04+, CentOS 7+)
或者
sudo service ssh restart 适用于旧系统
🧑💻 4、使用密钥登录服务器
* 在本地终端尝试连接:
bash
ssh username@server_ip_address
* 如果你的私钥使用了密码短语,系统会提示你输入该密码短语(不是服务器用户的密码)。
* 如果一切设置正确,你应该能直接登录,或者只输入私钥的密码短语后登录。
🔑 5、(可选但推荐) 使用 `ssh-agent` 管理私钥密码短语
为了避免每次连接都输入私钥的密码短语,可以使用 `ssh-agent`:
* 启动 ssh-agent:
bash
eval $(ssh-agent -s) Linux/macOS
或者
ssh-agent bash 新开一个 shell
* 将私钥添加到 ssh-agent:
bash
ssh-add ~/.ssh/id_ed25519 替换为你的私钥文件名
* 输入一次私钥的密码短语。
* 之后在同一个终端会话中使用 `ssh` 连接服务器时,就不需要再输入私钥密码了。
* 可以配置 `~/.ssh/config` 文件自动加载特定密钥到 `ssh-agent`。
🚨 重要安全提示
* 保护私钥: 私钥 (`id_rsa`, `id_ed25519`) 相当于你的身份凭证。绝不能将其发送给他人或上传到不安全的地方。最好使用密码短语加密它。
* 备份公钥: 公钥可以丢失,重新生成即可(但需要重新上传到所有服务器)。最好备份一下。
* 谨慎禁用密码登录: 在禁用密码登录 (`PasswordAuthentication no`) 之前,务必、务必、务必确认密钥登录正常工作,否则你可能被永久锁在服务器外!
* 服务器安全: 保持服务器操作系统和 SSH 服务 (`sshd`) 及时更新。考虑配置防火墙(如 `ufw`)只允许特定 IP 访问 SSH 端口(默认为 22)。可以使用工具如 `fail2ban` 来阻止暴力破解尝试。
* 使用强密码短语: 即使私钥文件被加密,密码短语也要足够强。
🔍 常见问题排查
* 无法登录,提示 Permission denied (publickey):
* 最常见原因:服务器上 `~/.ssh/authorized_keys` 文件或 `~/.ssh` 目录的权限设置错误。确保 `.ssh` 权限为 `700`,`authorized_keys` 权限为 `600`。
* 确认公钥内容是否正确复制粘贴到了 `authorized_keys` 文件中(没有多余空格或换行)。
* 确认服务器 `sshd` 配置中 `PubkeyAuthentication` 设置为 `yes`。
* 确认你使用的本地私钥文件是正确的,且与上传的公钥是匹配的一对。
* 尝试连接时使用 `-v` 参数 (`ssh -v username@server_ip_address`) 查看详细的调试信息。
* 服务器拒绝连接:
* 检查服务器 `sshd` 服务是否在运行 (`sudo systemctl status sshd`)。
* 检查服务器防火墙是否允许 SSH 端口(默认为 22)的入站连接。
* 确认服务器 IP 地址和用户名是否正确。
* 提示输入密码:
* 如果设置了私钥密码短语,这是正常的。
* 如果提示输入服务器用户密码,说明密钥登录未生效。检查上面的步骤,特别是 `authorized_keys` 文件位置和权限,以及 `sshd_config` 中 `PasswordAuthentication` 是否还是 `yes`。
* 确保 `ssh` 命令尝试使用了正确的私钥。可以使用 `-i` 参数指定私钥路径:`ssh -i /path/to/private/key username@server_ip_address`。
📌 总结
设置 SSH 密钥登录涉及生成密钥对、上传公钥到服务器、配置服务器 SSH 服务(可选但推荐禁用密码)以及使用 `ssh-agent`(可选)管理私钥密码。这显著提高了登录的安全
📣 商家广告 :
👍
0
👎
IP地址: 192.67.15.130
搜索次数: 0
提问时间: 2025-11-07 21:07:34
🛒 域名购买 :
t-x.com.cn pai.show 858.net.cn souzhan.com.cn 92.gs 41.gs guzun.cn 42.gs ff.biz zm.gs
❓️ 热门提问 :
变动ip 更改edge的搜索引擎 云服务器好还是虚拟主机好 去香港2个人要多少费用 vps服务器租用和云服务供应商排名 虚拟私人服务器评测 虚拟主机独享ip cdn服务器架设 美国云服务器网站 第一主机 豌豆Ai站群搜索引擎系统
🌐 域名评估 :
spgq.cn l.tj.cn f57.net trfi.cn musk.vote xx.mo.cn axir.cn xphone.motorcycles rrup.cn aifair.ren
⛏ 最新挖掘 :
凯里酸汤鱼 贵阳烤脑花 都匀毛尖茶 花溪牛肉粉 贵阳烤生蚝 贵阳烤豆腐 贵阳纸包鱼 贵阳特色菜
🖌 热门作画 :
🤝 关于我们:
豌豆Ai
域名
建站
站群
留痕
推广
评估
源码
开发Ai
工具
日记
价格
加盟
广告
流量
留言
联系
🗨 加入群聊 :
🔗 友情链接 :
广州花都月饼厂
域名抢注工具
ai提问
🧰 站长工具 :Ai工具 whois查询 搜索
📢 温馨提示 :本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
👉 技术支持 :本站由豌豆Ai 提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。