前言新装或重装VPS配置密钥登录,需要创建~/.ssh目录,并将公钥写入~/.ssh/authorized_keys、设置权限、禁用密码登录等操作都是很简单的基本操作,但是过程繁琐乏味:mkdir-p~/.sshcurl-fsSLhttps://github.com/P3TERX.keys>>~/。ssh/authorized_keyschmod700~/.sshchmod600~/.ssh/authorized_keyssudosed-i"s@.*\(PasswordAuthentication\).*@\1no@"/etc/ssh/sshd_configsudoservicesshdrestartSSHkey一键配置脚本是一组SSH密钥配置过程的解决方案。使用它只需要一行命令:bash<(curl-fsSLgit.io/key.sh)-gP3TERX-d语法和选项描述bash<(curl-fsSLgit.io/key.sh)[options...]-o-覆盖模式,必须写在最上面才能生效-g-从GitHub获取公钥,参数为GitHub用户名-u-从URL获取公钥,参数为URL-l-从本地文件获取公钥,参数为本地文件路径-p-修改SSH端口,参数为端口号-d-禁用密码登录如何生成SSH密钥对如果没有密钥,需要先生成,执行以下命令,一路回车。ssh-keygen-tecdsa-b521TIPS:此方法适用于Windows10(1803后)的PowerShell或WSL、Linux发行版自带的终端和macOS,但不限于这些环境。科普:521位ECDSA密钥比RSA密钥更安全,验证速度更快。运行后会在~/.ssh目录下生成两个密钥文件,id_ecdsa为私钥,id_ecdsa.pub为公钥。公钥是我们需要在远程主机上安装的。科普一下:~符号代表用户的家目录,俗称家目录。它的路径与当前登录的用户有关。在Linux中,普通用户的家目录路径为/home/username,root用户为/root。Windows10中的路径是C:\Users\username。在macOS中,路径是/Users/username。安装公钥从GitHub获取公钥在GitHub密钥管理页面添加公钥,比如我的用户名是P3TERX,然后在主机上输入如下命令:bash<(curl-fsSLgit.io/key.sh)-gP3TERX从url获取公钥,将公钥上传到网盘,通过网盘链接获取公钥:bash<(curl-fsSLgit.io/key.sh)-uhttps://p3terx.com/key.pub从本地文件获取公钥将公钥通过FTP传输到VPS,然后指定公钥路径:bash<(curl-fsSLgit.io/key.sh)-f~/key.pub覆盖模式使用覆盖模式(-o)/.ssh/authorized_keys文件将被覆盖,之前的密钥将被完全替换。该选项必须写在顶部才能生效,例如:bash<(curl-fsSLgit.io/key.sh)-o-gP3TERX或bash<(curl-fsSLgit.io/key.sh)-ogP3TERX禁用密码login确认密钥可以正常登录后,禁用密码登录:bash<(curl-fsSLgit.io/key.sh)-d修改SSH端口为SSH修改端口为2222:bash<(curl-fsSLgit.io/key.sh)-p2222一键操作安装密钥,修改端口,禁用密码登录一键操作:bash<(curl-fsSLgit.io/key.sh)-ogP3TERX-p2222-d