采用密钥方式认证登录linux系统

由于使用密码方式认证,每天会有大量的尝试爆破攻击,很是厌烦!现在改用通过创建密钥对的方式认证;SSH优点是基于成熟的公钥加密体系,所以传输的数据会进行加密,保证数据在传输的时候,不被篡改及泄露,从而提高了系统的安全性。

一般的linux操作系统中都有默认安装,或者安装时选择安装。
#rpm –qa |grep ssh 可用此命令查看安装了那个版本

输入ps –ef|grep ssh 如果只有看到ssh-agent,那么说明ssh-server还没有启动,需要如下命令来启动#/etc/init.d/ssh start

 

配置文件:/etc/ssh/sshd_config

修改禁止root用户直接登录
将PermitRootLoginPermitRootLogin参数”yes”修改为”no”

设置基于密钥登录方式
将#AuthorizedKeysFile .ssh/authorized_keys的#注释去掉,用于设置用户公钥文件存储位置,系统默认位置在用户目录下的.ssh/authorized_keys(其实就是生成的公钥文件)

取消密码验证方式

#PasswordAuthentication yes 的#去掉,并将”yes”改成”no”

 

SSH登录方式有密码登录和密钥登录,这里详细介绍一下密钥登录。

服务器每天有不计其数针对SSH的密码猜解,虽然加了密码错误三次后禁止IP的denyhosts模块设置,但是实际应用仍然不是很完美,索性将服务器认证方式换成密钥认证了,就是不能再用密码登录,除非有密钥。

这里说两种密钥生成的方法,一种是命令行生成,一种是用工具来生成(如securecrt)

1 命令行生成
假设我们为root用户生成KEY,在root下执行下面的命令:

# ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa): //密钥保存的路径

Created directory ‘/root/.ssh’. //注意:.ssh目录为隐藏目录

Enter passphrase (empty for no passphrase): //输入密钥密码,可不设置,设了就是密钥加密码的登录方式

Enter same passphrase again:

Your identification has been saved in /home/forever/.ssh/id_rsa. //私钥密码保存径

Your public key has been saved in /home/forever/.ssh/id_rsa.pub. //公钥密码保存路径

The key fingerprint is:

f1:80:a6:95:5d:43:1b:96:21:e2:f1:8c:7b:ca:95:e8 forever@bjf 密码指纹

设置后在/root/.ssh/下会生成一个公钥文件跟一个私钥文件

2 secureCRT生成

选择RSA密钥类型

通行短语即密钥密钥,可不填,注释就是备注下你是谁

选择OpenSSH密钥格式,点击完成即可生成私钥公钥文件

密钥生成后,需在服务端与客户端做设置

服务端:

把公钥文件的内容复制到/root/.ssh/authorized_keys

或重命名mv id.rsa.pub authorized_keys都行

客户端:

然后把私有密钥文件下载到本机,用secureCRT连接会话,选择密钥登录,并选择其私有密钥文件,用root用户即可登录,若设置了密钥密码,就还需要输入密码才能登录。

发表评论

电子邮件地址不会被公开。 必填项已用*标注