Skip to content

公钥认证登录

Lonny Wong edited this page Jan 21, 2024 · 1 revision
  • 在本地生成公私钥对,一般存放在 ~/.ssh/ 目录下,Windows 一般是存放在 C:\Users\xxx\.ssh\ 下( xxx 要替换成用户名 )。

    • 执行 ssh-keygen -t ed25519 生成 ED25519 的,私钥 ~/.ssh/id_ed25519,公钥 ~/.ssh/id_ed25519.pub
    • 执行 ssh-keygen -t rsa -b 4096 生成 RSA 的,私钥 ~/.ssh/id_rsa,公钥 ~/.ssh/id_rsa.pub
    • 以上任选一种即可,也可使用其他的公私钥类型,详看 openssh 的文档。
  • 登录服务器,将公钥( 即前面生成密钥对时 .pub 后缀的文件内容 )追加写入服务器上的 ~/.ssh/authorized_keys 文件中。

    • ~/.ssh/authorized_keys 中的一行代表一个客户端的公钥,注意要设置正确的权限:
      chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys
  • tssh 登录时,默认会使用 ~/.ssh/ 目录下的常见私钥:id_rsa, id_ecdsaid_ecdsa_skid_ed25519id_ed25519_sk 等。

  • 可以使用 -i 指定私钥文件登录 tssh -i ~/.ssh/id_ed25519,也可以在 ~/.ssh/config 中配置 IdentityFile 指定私钥。

  • ssh-keygen 生成公私钥时,可以设置密码,开机后通过 ssh-add 将私钥添加到 ssh-agent 中( 此时要输入密码 )。然后 tssh 登录时就会与 ssh-agent 交互,无需再次输入密码。这样既可以防止私钥文件被人盗走直接用,也兼顾了日常使用的方便性。

Clone this wiki locally