Kwok's Notes

CentOS Linux 配置SSH密钥登录 配置笔记

众所周知,服务器的安全一直是运维的心头之患,所谓数据无价可不是瞎说的。
从Web shell到Root爆破,无疑,倘若拿到了登陆权限,服务器的安全将无从谈起。
此篇笔记以CentOS 6为例来详细记录如何为Linux配置SSH密钥登录。

环境:

  • PuTTY
  • WinSCP
  • CentOS 6

步骤:

ssh-keygen -t rsa #-t指定密钥类型;如果没有指定默认生成用于SSH-2的RSA密钥
依次输入保存位置、密码、确认密码即完成密钥生成

检查密钥文件:

由于在测试中发现root用户下并没有.ssh文件夹,在生成密钥文件后直接生成到了当前文件夹下,并没有直接生成到/root/.ssh/文件夹下,所以在生成密钥文件后进行检查并设置权限。
若当前文件夹下有密钥文件,则证明/root/下没有.ssh文件夹,后期需要创建此文件夹;
若当前文件夹下没有密钥文件,则应该到/root/.ssh/下检查是否有密钥文件;

ls #查看当前文件夹下是否有密钥文件

若有密钥文件则执行以下:
mkdir /root/.ssh/ #创建密钥文件夹
mv rsa.pub /root/.ssh/authorized_keys #移动文件到密钥文件夹下并更名


若没有密钥文件则执行以下:
mv /root/.ssh/rsa.pub /root/.ssh/authorized_keys #更名

服务器最后配置:

chmod 644 /root/.ssh/#设置权限

注意:在此时进行处理私钥的第一步(下载文件到本地)
因为在下边的操作中会取消掉密码登录,如果不在此时将私钥文件保存至本地,将无法再登录服务器

vi /etc/ssh/sshd_config #用vi打开配置文件
PasswordAuthentication 修改为no #关闭密码登录
esc :wq!保存退出
/etc/rc.d/init.d/sshd restart#重启

处理私钥:

使用WinSCP将私钥文件下载至本地:
打开-工具-导入站点-从PuTTY导入即可
找到私钥文件下载至本地


打开PuTTYgen:

导入私钥文件
导入私钥文件可能会要求输入私钥密码,此密码是在服务器执行ssh-keygen -t rsa要求输入的密码
成功打开文件后点击Save private key即可保存密钥文件

设置PuTTY:

设置私钥文件位置
设置默认用户名
切换到回话保存即可

注意:

  • 在生成密钥文件时可不填写密码,在后续中不再使用密钥密码即可实现无密码登录
  • 设置权限务必644或600,保证当前用户有读写权限,不能设置777
  • 务必注意文件名,ssh和sshd是不一样的
  • 配置完成后要尝试用密码登录,如果报错说明配置成功