首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >SSH密钥登录问题

SSH密钥登录问题

原创
作者头像
是山河呀
发布2025-02-03 15:13:57
发布2025-02-03 15:13:57
2.5K0
举报
文章被收录于专栏:linux运维linux运维

1. 生成SSH密钥对

首先,需要在本地机器上生成SSH密钥对。

生成SSH密钥对
代码语言:javascript
复制
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" 

默认情况下,密钥会保存在 ~/.ssh/id_rsa(私钥)和 ~/.ssh/id_rsa.pub (公钥)。

2. 将公钥复制到远程服务器

将生成的公钥复制到远程服务器的 ~/.ssh/authorized_keys 文件中。

使用 ssh-copy-id 命令
代码语言:javascript
复制
ssh-copy-id -i ~/.ssh/id_rsa.pub  user@remote_host
手动复制公钥
  1. 复制公钥内容: cat ~/.ssh/id_rsa.pub
  2. 登录到远程服务器: ssh user@remote_host
  3. 将公钥内容追加到 ~/.ssh/authorized_keys 文件中: mkdir -p ~/.ssh chmod 700 ~/.ssh echo "公钥内容" >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys

3. 配置SSH服务

确保远程服务器上的SSH服务配置允许密钥登录。

编辑 /etc/ssh/sshd_config 文件
  1. 打开配置文件: sudo nano /etc/ssh/sshd_config
  2. 确保以下设置正确: PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PasswordAuthentication no # 可选,禁用密码登录
  3. 保存并退出编辑器。
  4. 重启SSH服务以应用更改: sudo systemctl restart sshd

4. 测试SSH密钥登录

尝试使用SSH密钥登录到远程服务器。

测试登录
代码语言:javascript
复制
ssh user@remote_host

如果一切配置正确,你应该能够无密码登录到远程服务器。

5. 常见问题及解决方法

问题1:无法连接到远程服务器

解决方法

  • 检查网络连接是否正常。
  • 确保远程服务器的防火墙允许SSH连接(默认端口22)。
  • 确认SSH服务正在运行:sudo systemctl status sshd
问题2:权限错误

解决方法

  • 确保 ~/.ssh 目录和 ~/.ssh/authorized_keys 文件的权限正确:chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
问题3:密钥未被接受

解决方法

  • 确认公钥已正确复制到 ~/.ssh/authorized_keys 文件中。
  • 检查 ~/.ssh/authorized_keys 文件中是否有多余的空行或格式错误。
  • 确保 sshd_config 文件中的 PubkeyAuthenticationAuthorizedKeysFile 设置正确。
问题4:仍然提示输入密码

解决方法

  • 确认 sshd_config 文件中的 PasswordAuthentication 设置为 no
  • 确认 sshd_config 文件中的 ChallengeResponseAuthentication 设置为 no
  • 重启SSH服务以应用更改:sudo systemctl restart sshd

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 1. 生成SSH密钥对
    • 生成SSH密钥对
  • 2. 将公钥复制到远程服务器
    • 使用 ssh-copy-id 命令
    • 手动复制公钥
  • 3. 配置SSH服务
    • 编辑 /etc/ssh/sshd_config 文件
  • 4. 测试SSH密钥登录
    • 测试登录
  • 5. 常见问题及解决方法
    • 问题1:无法连接到远程服务器
    • 问题2:权限错误
    • 问题3:密钥未被接受
    • 问题4:仍然提示输入密码
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档