MENU

vps密钥登录

July 21, 2025 • Read: 56 • 学习

生成密钥

ssh-keygen -t ed25519 -C "[email protected]" 

“####”里面的内容可以当备注,避免遗忘。

迁移密钥至 vps

在目标 vps 内创建文件:

touch ~/.ssh/authorized_keys

接着用将公钥放在 authorized_keys 里面。

或者在创建密钥的 vps 内直接用使用命令迁移,这样会直接用合适的权限创建目录。一步到位。

ssh-copy-id user@remote_host

查看权限

ls -l ~/.ssh

-rw-------. 1 user group 1766 7月 21 05:15 id_ed25519

  • -: 这是一个文件。
  • rw-: 所有者可以
  • ---: 所属组没有任何权限。
  • ---: 其他人没有任何权限。
    600 权限,对于私钥来说是正确的。

drwxr-xr-x. 2 user group 4096 7月 21 05:10 .ssh

  • d: 这是一个目录。
  • rwx: 所有者可以执行 (进入目录)。
  • r-x: 所属组可以执行 (列出文件和进入目录)。
  • r-x: 其他人可以执行
    755 权限。对于 SSH 来说, .ssh 目录需要更严格的 700 权限。

    赋予权限

    对于公钥:

    chmod 644 ~/.ssh/id_ed25519.pub
  • 6 (所有者):您拥有读和写权限。
  • 4 (所属组):您所在组的其他人可以读取。
  • 4 (其他人):所有其他用户都可以读取。

对于私钥:

chmod 600 ~/.ssh/authorized_keys
  • 6 (所有者):您拥有读和写权限。
  • 0 (所属组):没有其他人。
  • 0 (其他人):没有其他人。

Github 使用密钥验证

  1. 将私钥上传到 ~/.ssh
  2. 将对应的公钥上传到 github 用户设置的 ssh 与 gpg 公钥
  3. 私钥文件名改成加密方式的文件名 mv sshkey id_ed25519,SSH 客户端不认识 sshkey 这个名字,所以不会自动使用它。

开启密钥登录,关闭密码登录

vim /etc/ssh/sshd_config

找到 PasswordAuthentication 这一项,取消注释,把它修改为 no

重启 SSH 服务:

systemctl restart sshd
Last Modified: August 6, 2025