centos7通过公钥私钥实现远程登陆系统

在Linux下,远程登陆验证有两个方式一种是密码验证,一种是密钥验证,为了保证服务器的安全,设置一个复杂的密码,对系统安全能起到一定的防护作用,但也存在密码被暴力破解,密码泄露,等一些问题,过于复杂的密码对运维工作也会带来一些负担,对于一些服务自动化需要免密,也是依靠密钥实现的。

密钥认证是一种新认证方式,共用密钥存储在远程服务器上,私钥保存在本地,把公钥上传到服务器,登陆的时候通过私钥和公钥的配对验证来完成验证,在实际生产环境中,绝大多数服务器都是采用密钥验证。

首先需要修改ssh服务的配置文件。位置 /etc/ssh/sshd_config

 

PermitRootLogin yes(是否允许root远程登陆建议关闭,有需要的可以打开)
StrictModes no  (验证登陆时先检查用户有没有权限)
RSAAuthentication yes(打开)
PubkeyAuthentication yes(打开)

AuthorizedKeysFile      .ssh/authorized_keys (密钥位置,家目录下.ssh目录)

修改完配置文件,先不要重启sshd服务,不然远程会断掉,

创建文件夹以及密钥对儿。这里以root为例子,root的家目录是 /root文件夹,所以直接在/root下创建 .ssh文件夹

mkdir .ssh

cd .ssh

创建密钥对儿

ssh -keygen -t rsa 

[[email protected] .ssh]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 密钥位置,回车保持默认
Enter passphrase (empty for no passphrase): 密钥验证同时输入密码,回车不设置,你怕不安全也可以设置个密码
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub

查看,

ls

[[email protected] .ssh]# ls
  id_rsa (私钥) id_rsa.pub(公钥  )
通过sz或者winscp 把私钥放到本地,把公钥上传到服务器 

cat id_rsa.pub > .ssh/authorized_keys  重启sshd服务