创建密钥对
说明
在任何地方都可以进行密钥对的生成,关键的只是需要将公钥放到服务器特定目录,本地Windows电脑可使用git进行生成,linux服务器上则是自带ssh-keygen命令,无需额外下载或安装
步骤
生成密钥对
ssh-keygen -t rsa -b 4096 -C "自己想要备注的信息"
- 后面会提示让你输入passphrase,这个是私钥口令,可以保护私钥不被盗用。当然,也可以留空,实现无密码登录
- 之后重复要求输入口令,未设置口令直接回车
- 最后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: 指定此密钥对的密码, 如果指定此参数, 则命令执行过程中就不会出现交互确认密码的信息了.如果省略此参数,会提示你输入密码和密码确认。一般情况下不用输入,直接回车就行。
如果输入密码之后,以后每次都要输入密码。这里请根据你的安全需要决定是否需要密码,如果不需要,直接回车
上传公钥/安装公钥
说明
一个私钥其实也可以直接用在多台服务器上,需要的是将公钥下载到本地后,再上传到其他服务器上,再进行安装,修改配置等操作
密钥的安装
进入.ssh目录
cd ~/.ssh
将公钥内容添加到.ssh目录下的authorized_keys文件中(可能需要手动创建)
cat id_rsa.pub >> authorized_keys
- 自己用ssh下载私钥文件(id_rsa)到本地
删除服务器上的公钥文件(id_rsa.pub)
rm id_rsa.pub
更改文件权限
chmod 600 authorized_keys chmod 700 ~/.ssh
服务器修改配置
开启密钥登录
编辑 /etc/ssh/sshd_config 文件,修改下面两项配置## 文件内#开头的配置代表被注释了,可以自己删掉#取消注释,或自己再写一行 PubkeyAuthentication yes
## 文件内可能找不到这一项,自己加上就行了 RSAAuthentication yes
关闭密码登录
使用密钥登录成功后,再禁用密码登录~不然你就只能重装系统了~## 关闭密码登录,同样是编辑 /etc/ssh/sshd_config 文件,修改以下一项配置 PasswordAuthentication no
重启ssh服务
service sshd restart
- 完成流程
1 条评论
cy老师yyds~