文章目录

      • 一、前言
      • 二、配置方法
      • 三、遇到报错的解决方案

一、前言

  在安装配置linux服务器,设置私钥登录可以有两个好处,第一个好处防止对外linux服务器遭受ssh爆破攻击,提高了安全性;第二个好处登录服务器不需要输入密码(无密码登录),提升了便捷性。与此同时,私钥对于用户来说就像身份证一样重要,所以要存放并备份好自己的私钥。

二、配置方法

公私文件要位置 id_rsa(私钥) id_rsa.pub (公钥)

mac os
/Users/用户名/.ssh/

windows
c:\users\用户名\.ssh\

linux
/Users/用户名/.ssh/

如果没有.ssh文件,可以使用以下命令然后一直按回车就可以生成了

ssh-agent

上传公钥到服务器

 ssh-copy-id -i ./id_rsa.pub root@ip

上次成功服务器的.ssh文件夹会有authorized_keys文件,这就表明上传成功。

禁用使用密码登录

vim /etc/ssh/sshd_config

PasswordAuthentication yes改为no
systemctl restart sshd

修改root没有密码,这样不能使用密码登录
vim /etc/shadow 密码用*号代替

三、遇到报错的解决方案

1、ssh登陆报错“WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED“问题原因及解决方法

问题原因

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
翻译过来就是
警告:远程主机标识已更改!

此报错是由于远程的主机的公钥发生了变化导致的。
ssh服务是通过公钥和私钥来进行连接的,它会把每个曾经访问过计算机或服务器的公钥(public key),记录在~/.ssh/known_hosts 中,当下次访问曾经访问过的计算机或服务器时,ssh就会核对公钥,如果和上次记录的不同,OpenSSH会发出警告。

解决方法

删除对应ip的在known_hosts相关信息
vim /root/.ssh/known_hosts

更多推荐

Linux使用publick key 登录(无密码登录)