SSH密钥登录让Linux VPS/服务器更安全

安全 网站安全
随着PHP越来越流行,Linux VPS/服务器的使用也越来越多,Linux的安全问题也需要日渐加强,如果你安装过DenyHosts并设置过邮件提醒,你每天可能会受到数封DenyHosts Report将前来破解SSH密码的IP加入/etc/hosts.deny。

随着PHP越来越流行,Linux VPS/服务器的使用也越来越多,Linux的安全问题也需要日渐加强,如果你安装过DenyHosts并设置过邮件提醒,你每天可能会受到数封DenyHosts Report将前来破解SSH密码的IP加入/etc/hosts.deny。

Linux SSH登录有两种:

1、使用密码验证登录

通常VPS或服务器开通后都是直接提供IP和root密码,使用这种方式就是通过密码方式登录。如果密码不够强壮,而且没有安装DenyHosts之类的防止SSH密码破解的软件,那么系统安全将存在很大的隐患。

2、使用密钥验证登录

基于密钥的安全验证必须为用户自己创建一对密钥,并把共有的密钥放在需要访问的服务器上。当需要连接到SSH服务器上时,客户端软件就会向服务器发出请求,请求使用客户端的密钥进行安全验证。服务器收到请求之后,先在该用户的根目录下寻找共有密钥,然后把它和发送过来的公有密钥进行比较。如果两个密钥一致,服务器就用公有的密钥加密“质询”,并把它发送给客户端软件(putty,xshell等)。客户端收到质询之后,就可以用本地的私人密钥解密再把它发送给服务器,这种方式是相当安全的。

一、生成密钥

因为puttygen生成的密钥有问题可能会出现:“Server refused our key”,最好使用XShell生成密钥或者在远程Linux VPS/服务器生成密钥。

1、在Linux远程服务器生成密钥:

登录远程Linux VPS/服务器,执行:

[root@vps ~]# 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’.
Enter passphrase (empty for no passphrase):

//输入密钥密码
Enter same passphrase again:

//重复密钥密码
Your identification has been saved in /root/.ssh/id_rsa.

//提示公钥和私钥已经存放在/root/.ssh/目录下
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
1e:86:3c:2e:3a:5d:f2:8c:2b:e7:80:15:a5:93:85:e3 root@vps.clangcn.com
The key’s randomart image is:
+–[ RSA 2048]—-+
| .o |
| o= |
| .=. |
| Eo . . |
| . + S |
| o …+ . |
|. …*. . |
| oo+.o |
| .=o. |
+—————–+
[root@clangcn ~]#

2、使用XShell生成密钥

Xshell是一款Windows下面功能强大的SSH客户端,能够按分类保存N多会话、支持Tab、支持多密钥管理等等,管理比较多的VPS/服务器使用XShell算是比较方便的,推荐使用。

下载XShell.rar,安装,运行XShell,点击菜单:Tool ->User Key Generation Wizard,

SSH密钥登录让Linux VPS/服务器更安全

 

密钥类型选择“RSA”,密码加密强度,默认1024位即可,

SSH密钥登录让Linux VPS/服务器更安全

 

直接点击下一步,

SSH密钥登录让Linux VPS/服务器更安全

 

密钥名称可以自己定义,下面两项为密钥密码,建议设置,设置后一定要记住,

SSH密钥登录让Linux VPS/服务器更安全

 

生成密钥内容,保存密钥到本地硬盘,名称为id_rsa.pub,完毕。

SSH密钥登录让Linux VPS/服务器更安全

 #p#

二、将密钥添加到远程Linux服务器

1、用winscp或SFTP,将id_rsa.pub文件上传到/root/.ssh/下面(如果没有则创建此目录),并重命名为:authorized_keys(如果是在Linux服务器上生成的密钥直接执行:

mv /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys

再执行:

chmod 600 /root/.ssh/authorized_keys

修改权限。

2、修改/etc/ssh/sshd_config 文件,将RSAAuthentication 和 PubkeyAuthentication 后面的值都改成yes ,保存。

3、重启sshd服务,

Debian/Ubuntu执行

/etc/init.d/ssh restart

CentOS执行:

/etc/init.d/sshd restart

#p#

三、客户端测试使用密钥登录

XShell登录

运行XShell,选择菜单File->New,按如下提示填写:

Name中输入一个标识名称,Protocol选择“SSH”,Host中输入服务器的Ip地址或域名,如果修改过端口,请更改22为修改后的端口,

SSH密钥登录让Linux VPS/服务器更安全

 

在“Authentication”标签中,选择“Method”为“Public Key”,User Name中输入Linux服务器用户名,一般为root,User Key中选择上面生成的key,点击“OK”完成设置。

SSH密钥登录让Linux VPS/服务器更安全

 #p#

四、修改远程Linux服务器sshd服务配置

1、修改/etc/ssh/sshd_config 文件

将PasswordAuthentication yes 修改成 PasswordAuthentication no

2、重启sshd服务

Debian/Ubuntu执行

/etc/init.d/ssh restart

CentOS执行:

/etc/init.d/sshd restart

ok,设置完成。

再提醒一下一定要保存好id_rsa私钥文件。

责任编辑:蓝雨泪 来源: 博客
相关推荐

2018-06-15 16:05:06

服务器无密码验证登录安全

2012-05-08 13:59:23

2012-12-28 09:57:53

2018-01-31 11:20:48

2012-12-31 10:58:12

2015-08-17 16:34:13

2009-07-22 18:55:29

2015-08-12 08:54:24

2017-06-06 09:53:23

2023-09-13 22:54:06

2023-01-12 07:57:26

2010-04-22 15:24:36

邮件安全网络加密服务器

2009-02-27 15:15:00

2012-08-24 13:49:08

2013-05-30 09:25:43

2011-03-17 15:16:48

2016-03-17 10:20:57

2018-09-06 10:16:39

2009-12-01 15:40:45

2011-08-22 16:23:29

点赞
收藏

51CTO技术栈公众号