
第一步:打开终端(Linux/macOS)或 CMD/PowerShell (Windows)
首先我使用的是 windows ,调出命令行(cmd 回车)
输入一下命令:
ssh-keygen -t rsa -b 4096
系统会询问保存路径(直接回车使用默认路径即可)和密码短语(Passphrase,若想追求极致自动化可直接回车留空)。
图片参考:

完成后,你会在 ~/.ssh/ (完整目录: C:\Users\Administrator/.ssh/)目录下看到两个文件:
id_rsa(私钥:绝对不能泄露给任何人!)id_rsa.pub(公钥:可以公开,稍后上传)。
第二步:将公钥上传到服务器
私钥是我们本地保存使用,把公钥上传到服务器,并且设置对应的权限。然后在配置文件中启用密钥登录即可
登录服务器,并且创建配置文件夹:
mkdir -p ~/.ssh && chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys
第三步:将公钥上传到服务器即将公钥内容粘贴到服务器的 ~/.ssh/authorized_keys 文件中。或者通过文件上传的方式,然后把id_rsa.pub 改名为authorized_keys 也行。如果是上传改名的方式的话,文件权限要重新设置一遍
chmod 600 ~/.ssh/authorized_keys
(注:debian 在编辑文件的时候 按i 右键粘贴不了的时候。可以按住shift ,再按鼠标右键即可粘贴)
insert模式 按住shift 再鼠标右键粘贴:


第四部:编辑服务器配置文件:sudo nano /etc/ssh/sshd_config
PubkeyAuthentication yes
PasswordAuthentication no 如果要关闭密码登录,设置为no
然后重启服务器
sudo systemctl restart ssh
使用mobaxterm链接,指定私钥位置即可:

最后关于公钥的位置问题的一些解惑,供参考:


