教你几条捷径 提高SSH的安全性

日期: 2011-05-18 来源:TechTarget中国 英文

  现在,安全外壳协议几乎已经完全成为进行远程登录操作时的必备选择。对于很多管理员来说,使用它已经属于默认的要求。但问题的关键是,情况也并不是象大家想象的那么肯定,安全外壳协议提供的安全性也需要进行设置增加效果。现在,有很多种方法可以将安全措施提升到更高的级别,但哪些是最容易部署,安全性最高的呢?下面,就让我们来了解认识一下。

  基于ssh的密钥认证

  不论用户怎样降低使用频度,但只要还是使用密码登录的话,就可能出现被破解的情况。这是一个永远存在的安全漏洞。但是,通过使用基于ssh的密钥认证,问题就可以获得解决。只要设定一个密钥,然后将密钥复制到指定机器上,就可以完成设置,下面给出的就是具体实施步骤(请注意:这些步骤针对的是基于Ubuntu的客户机和服务器):

  本地系统

  打开一个终端窗口并输入命令ssh-keygen -t dsa。该命令将生成一个公钥,接下来要做的就是利用ssh-copy-id -i ~/.ssh/id_dsa.pub 用户名@目标地址命令将其复制到服务器上,在这里,用户名指的是远程计算机上实际使用的用户名,目标地址指的是远程计算机的实际地址。

  现在,当使用者尝试利用远程计算机进行登录的话,将被要求提供证书而不是用户密码。

  对于使用图形界面系统的用户来说,可以选择点击打开系统|首选项|密码和加密密钥设置。从该图形界面(参见图A)中选择个人密钥栏,点击文件|新建|安全外壳协议密钥项,按照创建指南的提示完成设置。

通过图形界面新建安全外壳协议密钥项

图A

  该工具可以对所有密码和私人密钥进行管理。

  一旦密钥得以创建,就可以通过右键单击打开,进行安全外壳协议密钥的设置。在新窗口中,使用者可以键入计算机的名称(远程系统)和登录名。请注意:这么做之前,务必确保在远程计算机上已经存在登录名。

  如果使用者采用的是Windows来登录ssh功能服务器的话,可以选择使用密钥对生成工具PuTTYgen。下载并启动PuTTYgen,点击生成按键,将鼠标移动到其它位置(在创建阶段),保存公共密钥,并将其复制到ssh服务器上。

  请注意:为了以防万一,大家应该选择始终对密钥进行强制密码保护。因为,如果在设置的时间选择容许密钥认证模式的话,可能会发现一些用户选择创建无密码密钥(基于易用性的考虑)。这种做法属于不安全的。

  阻止对根的访问

  对于所有系统来说,容许基于安全外壳协议的访问属于关键之一。打开文件/etc/ssh/sshd_config,查找这一行:

  PermitRootLogin

  确保上面的行设置为否定。正确的行应该是:

  PermitRootLogin no

  一旦对文件的更改和保存操作完成,就可以输入命令:

  sudo /etc/init.d/ssh restart

  现在,如果出现尝试利用ssh作为根用户登录到服务器上情况的话,访问就会被直接拒绝。

  调整端口号

  我相信将安全模糊化并不能带来真正的安全。但是针对安全外壳协议的情况,设置越多安全性就越高。因此,我非常支持将安全外壳协议的默认22号端口调整为非标准端口。为了做到这一点,需要打开/ etc/ssh/sshd_config文件,并查找此行(靠近顶部):

  Port 22

  将端口号调整为没有使用的其它非标准端口。需要注意的是,所有连接到该系统上的用户都应该了解到端口号方面的调整。在进行了调整之后,也需要重新启动ssh服务。

  利用命令行连接非标准端口时间,需要使用这样的命令:

  ssh -p 端口_数字 -v -l 用户名 网络地址

  在这里端口_数字就是非标准端口,用户名就是连接时使用的用户名,网络地址就是远程系统的地址。

  最后的思考

  总体而言,对于远程系统来说,安全外壳协议是一种相当安全的连接方式。但是,只要在默认的基础上进行小小的调整,就可以达到非常安全的状态……花费少量时间就可以换来安全方面的极大提高。作为一条标准的重要经验,使用者应该牢记,在任何情况下,都应该禁止根登录……所有超过这一限度的行为都是众所周知的糖衣炮弹。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐

  • 新libSSH漏洞可获取服务器root访问权限

    隐蔽近五年的libSSH漏洞可让恶意攻击者通过SSH服务器进程轻松获取对设备的管理控制。 NCC集团安全顾问P […]

  • 使用SSH+VNC实现安全的Linux远程桌面管理

    VNC可以对数据进行压缩,使得传输的数据量比直接用SSH加密的小,但这可以造成数据窃听,必要时可以通过SSH进行加密端口映射。

  • SSH的密钥管理

    SSH的密钥管理主要包括两个方面:生成公钥/私钥对以及公钥的分发,本文将对这两个密钥管理工作分别介绍。

  • SSH的应用场景

    SSH的用途广泛,本文介绍了SSH的两种应用场景:使用scp命令远程拷贝文件和使用SSH设置“加密通道”。