Loading... ## 创建密钥对 ### 说明 在任何地方都可以进行密钥对的生成,关键的只是需要将公钥放到服务器特定目录,本地Windows电脑可使用git进行生成,linux服务器上则是自带ssh-keygen命令,无需额外下载或安装 ### 步骤 1. 生成密钥对 ``` ssh-keygen -t rsa -b 4096 -C "自己想要备注的信息" ``` 2. 后面会提示让你输入passphrase,这个是私钥口令,可以保护私钥不被盗用。当然,也可以留空,实现无密码登录 3. 之后重复要求输入口令,未设置口令直接回车 4. 最后root 目录下生成了一个 .ssh 的隐藏目录,内含两个密钥文件。id_rsa 为私钥,id_rsa.pub 为公钥 ### 常用参数说明 ``` -t: 密钥类型, 可以选择 dsa | ecdsa | ed25519 | rsa; 省略的情况下默认是rsa -b 指定密钥长度。对于RSA密钥,最小要求768位,默认是2048位。命令中的4096指的是RSA密钥长度为4096位。 DSA密钥必须恰好是1024位(FIPS 186-2 标准的要求)。 -f: 密钥目录位置,指定生成密钥的保存路径和文件名。省略的情况下, 默认为当前用户home路径下的.ssh隐藏目录, 也就是~/.ssh/, 同时默认密钥文件名以id_rsa开头. -f省略的情况下,默认目录就是~/.ssh/,不会再次提醒输入。但是会再次提是你输入文件名,如果不输入直接回车,则默认的密钥文件名就是id_rsa -C: 指定此密钥的备注信息, 需要配置多个免密登录时, 建议携带;生成的公钥会在最后面显示此备注信息 -N: 指定此密钥对的密码, 如果指定此参数, 则命令执行过程中就不会出现交互确认密码的信息了.如果省略此参数,会提示你输入密码和密码确认。一般情况下不用输入,直接回车就行。 如果输入密码之后,以后每次都要输入密码。这里请根据你的安全需要决定是否需要密码,如果不需要,直接回车 ``` ## 上传公钥/安装公钥 ### 说明 一个私钥其实也可以直接用在多台服务器上,需要的是将公钥下载到本地后,再上传到其他服务器上,再进行安装,修改配置等操作 ### 密钥的安装 1. 进入.ssh目录 ``` cd ~/.ssh ``` 2. 将公钥内容添加到.ssh目录下的authorized_keys文件中(可能需要手动创建) ``` cat id_rsa.pub >> authorized_keys ``` 3. 自己用ssh下载私钥文件(id_rsa)到本地 4. 删除服务器上的公钥文件(id_rsa.pub) ``` rm id_rsa.pub ``` 5. 更改文件权限 ``` chmod 600 authorized_keys chmod 700 ~/.ssh ``` ## 服务器修改配置 1. 开启密钥登录 编辑 /etc/ssh/sshd_config 文件,修改下面两项配置 ``` ## 文件内#开头的配置代表被注释了,可以自己删掉#取消注释,或自己再写一行 PubkeyAuthentication yes ``` ``` ## 文件内可能找不到这一项,自己加上就行了 RSAAuthentication yes ``` 2. 关闭密码登录 使用密钥登录成功后,再禁用密码登录~不然你就只能重装系统了~ ``` ## 关闭密码登录,同样是编辑 /etc/ssh/sshd_config 文件,修改以下一项配置 PasswordAuthentication no ``` 3. 重启ssh服务 ``` service sshd restart ``` 4. 完成流程 最后修改:2024 年 06 月 18 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 2 如果觉得我的文章对你有用,请随意打赏
1 条评论
cy老师yyds~