创建密钥对

说明

在任何地方都可以进行密钥对的生成,关键的只是需要将公钥放到服务器特定目录,本地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 日
如果觉得我的文章对你有用,请随意打赏