生成密钥
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 使用密钥验证
- 将私钥上传到
~/.ssh
- 将对应的公钥上传到 github 用户设置的
ssh 与 gpg 公钥
- 私钥文件名改成加密方式的文件名
mv sshkey id_ed25519
,SSH 客户端不认识 sshkey 这个名字,所以不会自动使用它。
开启密钥登录,关闭密码登录
vim /etc/ssh/sshd_config
找到 PasswordAuthentication
这一项,取消注释,把它修改为 no
。
重启 SSH 服务:
systemctl restart sshd