生成密钥
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.pub6(所有者):您拥有读和写权限。4(所属组):您所在组的其他人可以读取。4(其他人):所有其他用户都可以读取。
对于私钥:
chmod 600 ~/.ssh/authorized_keys6(所有者):您拥有读和写权限。0(所属组):没有其他人。0(其他人):没有其他人。
Github 使用密钥验证
- 将私钥上传到
~/.ssh - 将对应的公钥上传到 github 用户设置的
ssh 与 gpg 公钥 - 私钥文件名改成加密方式的文件名
mv sshkey id_ed25519,SSH 客户端不认识 sshkey 这个名字,所以不会自动使用它。
开启密钥登录,关闭密码登录
vim /etc/ssh/sshd_config找到 PasswordAuthentication 这一项,取消注释,把它修改为 no。
重启 SSH 服务:
systemctl restart sshd