1. 生成密钥
    使用需要生成密钥的用户登录后键入。

    ssh-keygen -t rsa

    直接回车会在~/.ssh目录(用户所在家目录下的.ssh目录,如果没有请自行创建.ssh目录)生成id_rsa, id_rsa.pub文件 第一个是私有密钥 第二个是公共密钥。如果输入内容会在当前目录创建你输入内容为名称的私钥公钥。这里直接回车。
    然后输入密钥密码,再次输入密码(也可以不要密码直接回车)。生成密钥完成。

将用户.ssh目录内的两个密钥下载到本地。(我用的是win客户端ftp方式下载)

  1. 配置ssh使用密钥(一定先下载下来再去修改配置)
    将.ssh中的id_rsa.pub复制并改名字为authorized_keys

    cd .ssh
    cp id_rsa.pub authorized_keys

    修改authorized_keys权限为700(必须修改为700,不能为其他)

    chmod 700 authorized_keys

    修改sshd_config文件

    vim /etc/ssh/sshd_config

    参考如下修改,如果前面有# 去除

    StrictModes no  
    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile      .ssh/authorized_keys      #ssh文件位置
    PasswordAuthentication yes                        #使用密码  no为不使用密码
    AuthenticationMethods publickey,password          #如果密码和密钥都使用在末尾加上此行代码

    重启ssh服务

    systemctl restart sshd.service
    RSAAuthentication yes # 开启密钥登入的认证方式
    
    PubkeyAuthentication yes # 开启密钥登入的认证方式
    
    PermitRootLogin yes #此处请留意 root 用户能否通过 SSH 登录,默认为yes:
    
    PasswordAuthentication yes #当我们完成全部设置并以密钥方式登录成功后,可以禁用密码登录。这里我们先不禁用,先允许密码登陆

禁用root账户登录,非必要,但为了安全性,请配置

PermitRootLogin no

是否让 sshd 去检查用户家目录或相关档案的权限数据,
这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。
例如使用者的 ~.ssh/ 权限设错时,某些特殊情况下会不许用户登入

    StrictModes no

是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。
至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys 内

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      %h/.ssh/authorized_keys

有了证书登录了,就禁用密码登录吧,安全要紧

PasswordAuthentication no

列子:

# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords yes
PasswordAuthentication no

评论已关闭