温馨提示×

ubuntu下securecrt如何设置密钥认证

小樊
55
2026-01-02 20:55:37
栏目: 智能运维

Ubuntu下使用 SecureCRT 配置 SSH 密钥认证

一 准备与生成密钥

  • Ubuntu 客户端安装 OpenSSH 客户端工具(用于生成密钥、拷贝公钥):
    • sudo apt update && sudo apt install -y openssh-client
  • 生成密钥对(推荐 Ed25519,或 RSA 2048+):
    • 生成:ssh-keygen -t ed25519 -C “you@example.com”(回车使用默认路径,如 ~/.ssh/id_ed25519
    • 或生成:ssh-keygen -t rsa -b 2048 -C “you@example.com”
  • 将公钥复制到目标 Ubuntu 服务器(避免手动编辑权限出错):
    • ssh-copy-id user@server_ip
    • 如不支持 ssh-copy-id:cat ~/.ssh/id_ed25519.pub | ssh user@server_ip “mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys”
  • 说明:若你已在 SecureCRT 中生成了密钥,可跳过本机生成,直接把公钥部署到服务器即可。

二 在 Ubuntu 服务器启用公钥认证

  • 确保 SSH 服务已安装并运行:
    • sudo apt install -y openssh-server
    • sudo systemctl enable --now ssh
  • 调整服务器配置(/etc/ssh/sshd_config),确保包含或调整为:
    • PubkeyAuthentication yes
    • AuthorizedKeysFile .ssh/authorized_keys
    • PasswordAuthentication no(在确认密钥可登录后再关闭,避免被锁)
    • 可选:Protocol 2,以及 PermitRootLogin(建议 prohibit-passwordno
  • 设置目录与文件权限(关键):
    • chmod 700 ~/.ssh
    • chmod 600 ~/.ssh/authorized_keys
    • chown -R $USER:$USER ~/.ssh
  • 使配置生效:
    • sudo systemctl restart ssh
  • 验证公钥登录是否正常(先在客户端测试,再禁用密码):
    • ssh user@server_ip

三 在 SecureCRT 中配置私钥登录

  • 新建或编辑会话 → 进入 Session Options → Connection → SSH2 → Authentication → Public Key
    • 点击 Add… 选择你的私钥(如 ~/.ssh/id_ed25519~/.ssh/id_rsa
    • 如私钥设置了 Passphrase,连接时会提示输入
    • 建议取消勾选 “Try password authentication if public key fails”,避免回退到密码
  • 连接测试:应仅使用密钥(及私钥口令)完成认证。

四 常见报错与排查

  • Permission denied (publickey)
    • 检查服务器:~/.ssh 权限 700、~/.ssh/authorized_keys 权限 600、属主正确
    • 确认公钥已追加到 authorized_keys(使用 >> 而非 >)
    • 确认服务器配置启用了 PubkeyAuthenticationsshd 已重启
  • server refused our key
    • 常见于 StrictModes yes 且 .ssh 或 authorized_keys 的属主/权限不当;修正属主与权限或临时将 StrictModes 设为 no 验证
  • 私钥不被识别
    • 若使用 SecureCRT 生成的 SSH2(SECSH)格式公钥,需在服务器转换后写入 authorized_keys:
      • ssh-keygen -i -f Identity.pub >> ~/.ssh/authorized_keys
  • 仍无法连接
    • 在客户端用 ssh -v user@server_ip 查看详细握手与认证过程,定位是客户端还是服务器端问题。

0