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私钥文件

时间: 2024-08-01 12:04:14

SSH密钥登录让Linux VPS/服务器更安全的相关文章

linux中ssh密钥登录失败解决办法

今天我在设置ssh密钥登录的时候,发现这个奇怪的情况,我将我的id_rsa.pub密钥内容拷贝到远程linux主机的A用户的.ssh下的authorized_keys(这个文件我手动建立的)下,但是再次登录时,发现还需要输入密码,额?这不科学!然后我查看了一下远程linux主机的sshd日志 /var/log/secure 发现了如下日志输出内容: Authentication refused: bad ownership or modes for file /home/sysadmin/.ss

Glances工具监控Linux VPS服务器资源状态的方法

第一.Glances网站  代码如下 复制代码 工具地址:https://github.com/nicolargo/glances 如果我们需要在Linux VPS服务器中安装Glances工具,那需要确保Python2.6以上.psutil2.0版本以上. 第二.Glances监控工具安装 1.自动安装  代码如下 复制代码 wget -O- http://bit.ly/glances | /bin/bash 我们在确保支持环境的时候,输入上面的一键包安装,可以自动部署Glances监控工具.

黑客窃取SSH密钥 攻击Linux系统架构平台

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 美国计算机安全紧急应变中心(US-CERT)在近日表示,检测表明黑客通过窃取SSH(Secure Shell)密钥针对Linux架构平台进行攻击. SSH作为远程通讯及网络服务专用的通讯协议之一,可以对传输数据进行加密,并透过公钥密码存取,因此被视为较可靠的协议.此外,许多使用SSH密钥登录的系统并不要求使用者重新输入密码,而直接自动登入.

Linux VPS服务器内存不够用的优化方案

自从把我的一个网站搬家到linode 1G 的vps上后,总感觉有些不太正常.首先dnspod监控上显示网站有时能访问,有时不行.然后wp supercache插件在执行预缓存任务时经常失败后重启,邮件内容如"[http://www.111cn.net] 预缓存可能已失去响应.预缓存已经重新启动.".还有一个情况是linode有时会发来磁盘io使用高的报警邮件. 今天抽空检查了下服务器,发现一个现象是mysql进程频繁无故重启. 150424 17:41:14 [Note] Event

Xshell使用SSH远程登录阿里云ECS服务器CentOS7

Xshell使用SSH远程登录阿里云ECS服务器CentOS7 ---------------------------------------------- 新购买一台阿里云ECS服务器,配置根据自己选择 1.配置安全组入方向 TCP 22/22 端口允许通过 2.重新启动服务器 3.root登录 4.查看22端口是否开放 [root@localhost ~]# netstat -tnl 如果显示以下内容就说明22端口已经开放 Active Internet connections (only

linux中ssh密钥登录失败问题解决办法

搞一个ssh的密钥登录,结果发现就是无法使用密钥登录,非让我输入密码.苦恼. 输入ssh连接代码 ssh -i private.key -v user@host.com -p22 从连接的信息中看不出有什么问题. debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password debug1: Next authentication method: publickey debug1

linux VPS服务器安全配置步骤详解

在开通了 Linux 系统的 VPS 或服务器后,我们有必要做一些基本的安全设置. 大概有如下几个方面: 1. 禁止root帐号ssh,使用自定义帐号ssh: 这样一来,黑客要先猜到帐号,然后才能猜解密码: 2. 禁止帐号登录,使用pubkey登录: 3. 作ip ACL,只允许几个特定的IP访问: 4. ssh端口迁移,将默认22端口改为其他端口: 5. 启动尽量少的服务:如无必要,不起服务. 配置开始 一.关闭 SSH 密码登陆 首先,你需要有自己的 SSH Key,如果你使用 Window

Linux vps服务器国产面板wdcp的安装和基本使用

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 接触wdcp 全称(WDlinux Control Panel)有1年多时间了它 是一套国产基于php脚本开发的Linux vps 或服务器上 使用的 面板,通过面板来操作可以彻底放弃用ssh 命令来操作的繁琐,让Linux服务器系统变得更容易使用.发展到现在的版本 功能以非常完善了.国外也有同类产品,不过功能优秀点的都是收费的而且还不便宜一

Linux VPS/服务器一键检测硬件配置、节点下载和IO读写脚本

我们在购买购买Linux vps.服务器之后首先需要检查的就是购买的机器与我们看到的方案.配置是不是一样,因为之前也存在过有购买到的机器与实际需要购买的并不是一样的配置.这个其中有可能商家搞错的问题,也有可能是配置缩水的问题.   对于Linux VPS主机实际性能我们当然肯定不能在数据上绝对体现,主要还是靠我们实际的使用过程可能遇到的稳定性.售后以及速度等等系列的问题.在这篇文章中,老左准备提供这个在网上看到的一键脚本,可以用来检测服务器的配置信息.随机节点.以及IO读写性能.   第一.一键