CentOS7部署ssh证书登录

为了不改变.ssh的权限, 使用ssh-keygen生成公钥和私钥, 同时生成.ssh目录

使用man ssh-keygen查看ssh-keygen的使用说明

使用ssh-keygen -t rsa生成相关文件, 当然你也可以自定义

cd .ssh可以查看几个文件:

authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥
id_rsa : 生成的私钥文件
id_rsa.pub : 生成的公钥文件
know_hosts : 已知的主机公钥清单

如果希望ssh公钥生效需满足至少下面两个条件:

  • .ssh目录的权限必须是700
  • .ssh/authorized_keys文件权限必须是600
    由于我们使用命令行生成的文件所以不需要修改权限

接下来在.ssh文件夹使用vim常见authorized_keys文件
vim authorized_keys

将你想使用的秘钥复制到authorized_keys文件中

接下来编辑sshd的配置文件
vim /etc/ssh/sshd_config

直接按i进入--INSERT--模式, 然后将公钥复制到文件中(查看公钥使用cat命令)

修改下列属性

#禁用root账户登录,如果是用root用户登录请开启
PermitRootLogin yes

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

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

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

启动sshd服务
service sshd start

或者使用如下命令启动
/bin/systemctl start sshd.service

新的命令
ssh-copy-id root@your ip

你可能感兴趣的:(CentOS7部署ssh证书登录)