提高服务器安全,使用ssh证书登录服务器
使用密码登录服务器,如果密码过于简单会有一定的安全隐患。可能会被暴力破解。
生产环境的服务器,建议通过证书登录,证书比密码更安全。不容易被破解,而且数据的传输是加密的,可以防止中间人攻击。
在本地生成密钥对
在Windows客户端,生成密钥对的方法有很多,ssh客户端可以生成,Git客户端可以生成,安装Openssl可以生成,Jdk的keytools也可以生成。
使用Git客户端生成密钥的(需要本地安装了Git),在CMD控制台执行
ssh-keygen -t rsa
密钥对会在自己的HOME
目录的.ssh
文件夹中
id.rsa
是私钥,千万要保护好ids.rsa.pub
是公钥
服务器配置
编辑ssh配置文件
vim /etc/ssh/sshd_config
修改配置项
PermitRootLogin no
* 是否禁用ROOT登录(非必须的)
PubkeyAuthentication yes
* 是否允许证书登录
PasswordAuthentication yes
* 是否允许使用密码进行登录
* 可以设置为 no,那就只能用证书登录了
StrictModes no
* 是否检查用户`home`或相关档案的权限数据
* 可能会导致不能登录,设置为: no
AuthorizedKeysFile %h/.ssh/authorized_keys
* 指定公钥文件位置
上传公钥到服务器
把公钥内容,写入到 ~/.ssh/authorized_keys 文件中
公钥本身就是个文本文件而已,直接复制,粘贴到 authorized_keys 就可以
如果你需要在多处登录,例如公司一台电脑,家里一台电脑。那么就把它们的公钥都写入这个文件。
一行,一个公钥。
重启ssh服务
确定正确的配置了ssh,以及上传了公钥后才执行
systemctl restart sshd.service