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

随着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@vpser:~# 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:

15:23:a1:41:90:10:05:29:4c:d6:c0:11:61:13:23:dd root@vpser.net

The key’s randomart image is:

+–[ RSA 2048]—-+

|=&@Bo+o o.o |

|=o=.E o . o |

| . . . |

| . |

| S |

| |

| |

| |

| |

+—————–+

root@vpser:~#

将/root/.ssh/下面的id_rsa和id_rsd.pub妥善保存。

2、使用XShell生成密钥

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

下载XShell,安装,运行XShell,点击菜单:Tool ->User Key Generation Wizard,出现如下提示:



点击Save as file将密钥保存为id_rsa.pub。

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

1、用winscp,将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。

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

1、使用putty登录

putty使用的私钥文件和Linux服务器或XShell的私钥格式不同,如果使用putty的话,需要将Linux主机上生成的id_rsa文件下载的本地。运行putty压缩包里面的puttygen.exe,选择Conversions->Import key选择私钥文件id_rsa,输入密钥文件的密码,会出现如下界面:



点击“Save Private Key”,将私钥保存为id_rsa.ppk

运行putty,在Host Name填写:root@主机名或ip



如果设置了密钥密码,出现:Passphrase for key “imported-openssh-key”时输入密钥密码。

如果设置没问题就会登录成功,出现用户提示符。

2、XShell登录

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



打开创建好的Session



如果设置没问题就会登录成功,出现用户提示符。

3、Linux客户端登录测试

在Linux客户端执行:chmod 600 /root/id_rsa 再执行:ssh root@www.vpser.net -i /root/id_rsa /root/id_rsa为私钥文件,第一次链接可能会提示确认,输入yes即可,再按提示输入密钥密码,没有问题就会出现用户提示符。

四、修改远程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,设置完成。

再提醒一下一定要保存好Putty私钥文件id_rsa.ppk或Linux服务器下载下来的id_rsa私钥文件

(0)

相关推荐

  • 使用 WinSCP 管理 Linux VPS/服务器上的文件 图文教程

    Linux上经常会经常需要编辑文件,特别是Linux VPS/服务器安装好系统之后配置环境会需要修改很多的配置文件等,对于常用Linux的基本上都能够熟练使用vi或者nano等SSH下面的文件编辑工具 ...

  • Linux VPS服务器依据系统资源自动重启bash shell脚本

    这里介绍有2种不同的操作: 1、监控 linux 服务器负载及内存占用,如 MySQl、php-fpm,当负载或内存占用达到设置值后,便自动重启该进程以避免宕机:根据剩余内存比例反应 2、VPS服务器 ...

  • 为Linux系统的VPS服务器开启SSH密钥登录的方法

    为了vps的安全,我开启了vps的ssh 秘钥登陆设置,通过goole搜索资料,操作成功.以下为操作记录.这里假设以root身份,vps的ip为192.168.0.1 第一步:产生秘钥即keys 基本 ...

  • MySQL数据库在Linux VPS服务器上如何导入导出

    随着网站的运行MySQL数据库也越来越大,备份问题也日益凸显,使用phpmyadmin导出或导入时可能会因为超时文件过大等原因无法导入或导出.下面VPS侦探说一下几个解决方法 步骤/方法 01 MyS ...

  • linux vps面板kloxo 创建站点及自动备份

    kloxo 是一款linux vps服务器 非常优秀国外免费面板,国内用户保有量也非常大。汉化也很到位了。之前笔者以介绍了 一键安装包的使用非常方便(一键安装kloxo)。尽管如此单对于初次使用的朋友 ...

  • linux vps管理之ssh远程连接软件工具篇

    linux vps管理之ssh远程连接软件工具篇

  • Putty使用教程 远程(SSH)管理Linux VPS

    用它来远程管理Linux VPS十分好用,其主要优点如下: ◆ 完全免费; ◆ 在Windows 下运行的都非常好; ◆ 全面支持ssh1和ssh2; ◆ 绿色软件,无需安装,下载后在桌面建个快捷方式 ...

  • VPS 防止SSH 暴力登录尝试攻击的配置方法

    前些时谈了一下如何屏蔽对网站服务器的扫描,属于前台防御。后来 Felix 发了一篇 blog 提到将多次尝试 SSH 登录失败的 IP ban 掉,才想起来去看一下日志,没想到后院起火了。 查看日志文 ...

  • 使用Putty远程(SSH)管理Linux VPS的图文

    Putty 是一个免费的、Windows 32平台下的telnet、rlogin和ssh客户端,但是功能丝毫不逊色于商业的telnet类工具。 用它来远程管理Linux VPS十分好用,其主要优点如下 ...