centos7 服务器部署ssh证书授权登录

0

使用ssh证书授权登录的必要性

普通用户登录时,以往的做法往往是使用账号密码登录,但是这样的登录方式风险相当高,使用密钥登录能大大降低这个风险,这个密钥是针对每台计算机生成的独一无二的凭证,保存在登录用户的电脑中,只能通过登录用户电脑的证书授权才能登录服务器。

登录用户电脑操作

建立~/.ssh目录(如果没有)

shellls -al ~/.ssh

根据邮箱创建私钥

shellssh-keygen -t rsa -b 4096 -C "your_email@example.com"

按照流程走完后会在 ~/.ssh目录下看到id_rsa, id_rsa.pub文件 第一个是私有密钥 第二个是拥有密钥

复制id_rsa.pub中的内容(mac)

shellcat id_rsa.pub | pbcopy 

服务器配置(centos7)

shellvim /etc/ssh/sshd_config

将如下配置前的#号去掉

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

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

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

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

将密钥写到一张文件去 如test 然后将这个文件导入 ~/.ssh/authorized_keys

shellcat test >> ~/.ssh/authorized_keys

启动ssh服务

shellservice sshd start

有可能会提示

shellRedirecting to /bin/systemctl start  sshd.service

只要按照提示操作就能开启ssh服务

shell/bin/systemctl start  sshd.service

这样一来在计算机持有密钥的情况下就可以不使用账号密码登录服务器了

你可能感兴趣的

noad · 2015年06月17日

搞不定啊,还是要输入密码了

回复

gameFu 作者 · 2015年06月17日

操作过程中有报错嘛

回复

noad · 2015年06月17日

还是要输入密码登录,网上看了说文件权限有问题,都按照改了,还是不行

回复

hanyu363 · 2016年09月10日

同上。总是输入提示输入密码。

回复

togal · 2017年11月30日

@noad @hanyu363
chmod 755 .ssh
chmod 644 .ssh/authorized_keys

回复

载入中...