1、在 C:\Users\craft\.ssh(你的用户的目录)下找到 id_rsa.pub

没有的话用 ssh-keygen -t rsa -b 4096 -C "你的邮箱" 创建

或者是 ssh-keygen -t ed25519 -C "你的邮箱",关于 ssh-keygen 可以查看我的 wiki:ssh-keygen

2、在服务器端如果是root用户就在 root/.ssh 下创建 authorized_keys,将 id_rsa.pub 中的内容复制粘贴进去

如果是普通用户就在 home/.ssh 下创建

有些服务器可能会看到有 keyskeys2

  • .ssh/authorized_keys:
    • 这是当前和推荐使用的文件。
    • 它用于存储公钥,允许用户通过 SSH 密钥对进行身份验证,而无需输入密码。
    • 它支持 SSH 协议的最新版本(SSH-2)。
  • .ssh/authorized_keys2:
    • 这个文件主要是为了兼容早期的 SSH 协议版本(SSH-1)而存在的。
    • 在 SSH-2 成为主流之前,SSH-1 曾广泛使用,并且一些旧的 SSH 客户端或服务器可能仍然需要它。
    • 然而,SSH-1 存在已知的安全漏洞,因此强烈建议避免使用。

3、可能需要去 etc/ssh/sshd_config 中将 PubkeyAuthenticationAuthorizedKeysFile 两行的注释取消掉

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2

4、可能需要对文件和目录赋权

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

5、还有问题,可以用 ssh -vvv 查看更详细的日志