SSH 使用原理 与解释

用SSH替代Telnet 获得更安全连接

如果你一直利用Telnet控制网络设备,你可以考虑采用其他更安全的方式。本文告诉你如何用SSH替换Telnet。
Click here to find out more!

使用Telnet这个用来访问远程计算机的TCP/IP协议以控制你的网络设备相当于在离开某个建筑时大喊你的用户名和口令。很快地,会有人进行监听,并且他们会利用你安全意识的缺乏。

SSH是替代Telnet和其他远程控制台管理应用程序的行业标准。SSH命令是加密的并以几种方式进行保密。

在使用SSH的时候,一个数字证书将认证客户端(你的工作站)和服务器(你的网络设备)之间的连接,并加密受保护的口令。SSH1使用RSA加密密钥,SSH2使用数字签名算法(DSA)密钥保护连接和认证。

加密算法包括Blowfish,数据加密标准(DES),以及三重DES(3DES)。SSH保护并且有助于防止欺骗,“中间人”攻击,以及数据包监听。

实施SSH的第一步是验证你的设备支持SSH。请登录你的路由器或交换机,并确定你是否加载了一个支持SSH的IPSec IOS镜像。

在我们的例子中,我们将使用Cisco IOS命令。运行下面的命令:
Router> Show flash

该命令显示已加载的IOS镜像名称。你可以用结果对比你的供应商的支持特性列表。

在你验证了你的设备支持SSH之后,请确保设备拥有一个主机名和配置正确的主机域,就像下面的一样:
Router> config terminal
Router (config)# hostname hostname
Router (config)# ip domain-name domainname

在这个时候,你就可以启用路由器上的SSH服务器。要启用SSH服务器,你首先必须利用下面的命令产生一对RSA密钥:
Router (config)# crypto key generate rsa

在路由器上产生一对RSA密钥就会自动启用SSH。如果你删除这对RSA密钥,就会自动禁用该SSH服务器。

实施SSH的最后一步是启用认证,授权和审计(AAA)。在你配置AAA的时候,请指定用户名和口令,会话超时时间,一个连接允许的尝试次数。像下面这样使用命令:
Router (config)# aaa new-model
Router (config)# username password
Router (config)# ip ssh time-out
Router (config)# ip ssh authentication-retries

要验证你已经配置了SSH并且它正运行在你的路由器上,执行下面的命令:
Router# show ip ssh

在验证了配置之后,你就可以强制那些你在AAA配置过程中添加的用户使用SSH,而不是Telnet。你也可以在虚拟终端(vty)连接中应用SSH而实现同样的目的。这里给出一个例子:
Router (config)# line vty 0 4
Router (config-line)# transport input SSH

在你关闭现存的Telnet会话之前,你需要一个SSH终端客户端程序以测试你的配置。我极力推荐PuTTY;它是免费的,而且它是一个优秀的终端软件。

最后的想法
当你在你的路由器和交换机上启用了SSH之后,保证你修改了所有现存的访问控制列表以允许对这些设备的连接。你现在可以向你的上级报告你已经堵上了一个巨大的安全漏洞:现在所有的网络管理会话都被加密并且被保护着。

(0)

相关推荐

  • SSH整合中 hibernate托管给Spring得到SessionFactory

    <prop key="hibernate.current_session_context_class">thread</prop> 然后 Resource resource=new ClassPathResource("/WEB-INF/applicationContext.xml"); BeanFactory factory=new XmlBeanFactory(resource); SessionFactory sessionFactor

  • 简单架设SSH+Squid代理服务器的自由上网通道的方法

    而SSH则很好地解决了这个问题.你只需要一个vps,就可以配置了.架设还是挺容易的. 安装webmin webmin是一个可视化管理linux系统的免费软件.我们安装它是为了方便管理squid代理服务器或者linux系统.详细安装地址如下: CentOS 安装Webmin管理系统 安装squid代理服务器 1.在安装squid之前,我们需要安装EPEL软件包. 复制代码 代码如下: rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i38

  • shell脚本实现ssh自动登录功能分享

    文件名:ssh_auto_login 复制代码 代码如下: #!/usr/bin/expect### ssh模拟登陆器## @author zhiyuan <hzyhouzhiyuan艾特gmail.com>##if {$argc<4} { puts "Error params: $argv" puts "Expect params :user passwd ip port [translate_id]" exit 1} set default_p

  • ssh连接超时解决方法

    1.修改server端的etc/ssh/sshd_config 复制代码 代码如下: ClientAliveInterval 60 #server每隔60秒发送一次请求给client,然后client响应,从而保持连接ClientAliveCountMax 3 #server发出请求后,客户端没有响应得次数达到3,就自动断开连接,正常情况下,client不会不响应 2.修改client端的etc/ssh/ssh_config添加以下:(在没有权限改server配置的情形下) 复制代码 代码如下:

  • ssh 登录很慢该如何解决

    ssh登录很慢解决方法 使用ssh客户端(如:putty)连接Linux服务器,可能会等待10-30秒才有提示输入密码.严重影响工作效率.登录很慢,登录上去后速度正常,这种情况主要有两种可能的原因: 1. DNS反向解析问题 OpenSSH在用户登录的时候会验证IP,它根据用户的IP使用反向DNS找到主机名,再使用DNS找到IP地址,最后匹配一下登录的IP是否合法.如果客户机的IP没有域名,或者DNS服务器很慢或不通,那么登录就会很花时间. 解决办法:在目标服务器上修改sshd服务器端配置,并重

  • PowerShell小技巧之尝试ssh登录

    在PSNet程序集中继续进行扩展,在$env:PSSpace/PSNet/TCPOp/下创建Invoke-SSHLogin.ps1脚本用于在传入指定ssh地址.用户名和密码后返回是否登录成功. 在$env:PSSpace/PSNet/下创建Lib目录用于存放在脚本中需要使用的第三方库,由于在本文中需要引用Renci.SshNet.dll用户可以从http://sshnet.codeplex.com/releases/view/72214中下载程序,解压后将文件放置在$env:PSSpace/PS

  • Linux SSH 安全策略 更改 SSH 端口

    默认的 SSH 端口是 22.强烈建议改成 10000 以上.这样别人扫描到端口的机率也大大下降.修改方法:# 编辑 /etc/ssh/ssh_config vim /etc/ssh/ssh_config # 在 Host * 下 ,加入新的 Port 值.以 18439 为例: Port 22 Port 18439 # 编辑 /etc/ssh/sshd_config (同上2图) vim /etc/ssh/sshd_config #加入新的 Port 值 Port 22 Port 18439

  • Linux VPS安全设置之一 修改SSH端口(CentOS/Debian)

    老左在之前的不少文章中已经分享过在centos或者在debian环境下安装lnmp和llsmp的教程,老左用人格担保肯定是可行的,因为我都是在实战操作后截图及写下来的文章.可以让VPS初学者手把手的学习如何在Linux VPS上安装系统及建立网站.老左第一次使用VPS不会安装环境,准备请一个网友安装,还准备收费50元,鉴于此我就自学. 我们在学会了VPS的安装和建站之后,肯定需要附带学习VPS的安全设置.因为VPS和主机不同,主机商可能会给我们备份,而且主机的安全性都有主机商承担.但是,如果现在

  • Python实现建立SSH连接的方法

    本文实例讲述了Python实现建立SSH连接的方法.分享给大家供大家参考.具体实现方法如下: 我需要实现一个Windows下远程连接到SSH服务器执行命令的功能,所以就在网上找资料.我的环境是:Windows7 64位,Python 2.7 32位.按照网上的说法,需要下载pycrypto和paramiko两个模块进行安装.最后下载的版本是pycrypto2.3和paramiko1.7.6. 安装过程也比较简单,先安装pycrypto后安装paramiko,解压后在命令提示符下切换到解压后的目录

  • ssh远程执行命令方法和Shell脚本实例

    写这篇博客之前,我google了一堆相关文章,大都是说修改/etc/sudoers,然后NOPASSWD:指定的cmd,但是真心不管用,没有远程虚拟终端这个方法就是浮云,ubuntu10.04 server 亲测!! ssh执行远程操作 命令格式 复制代码 代码如下: ssh -p $port $user@$p 'cmd'    $port : ssh连接端口号  $user: ssh连接用户名  $ip:ssh连接的ip地址  cmd:远程服务器需要执行的操作 准备工作 基于公私钥认证或者用户

  • SSH+Jquery+Ajax框架整合

    近期学习了SSH2(Struts2+Spring+Hibernate)的整合后,开始尝试的写一个登陆界面,结果发现:若是单单使用struts2来进行页面跳转的话页面的效果不怎么样,同时也无法进行局部刷新(即异步提交验证). 于是,我开始在网上搜索解决的办法,有些说通过一个隐藏的iframe来达到效果,当我总觉得麻烦和不实用.后来问了下老师,告诉了我使用ajax可以达到想要的效果,我又发现网上有很多例子都是ajax的,但缺少的就是SSH2(整合好的)和ajax 的整合(ajax使用了jQuery框

  • ssh expect自动登录的脚本代码

    实现:ssh远程登录,每次都要指定一堆用户名和密码,现要求实现自动登录.登录流程:本地A 先登录到 B 再由B 登录到最终的C 如下: 复制代码 代码如下: #!/usr/bin/expect -fset timeout 30spawn ssh Bexpect "password:"send "passwd@\r"expect "]*"send "ssh name@C -p port\r"expect "passwo

  • ssh自动登录的4种实现方法

    1. 自动ssh/scp方法 A为本地主机(即用于控制其他主机的机器) ;B为远程主机(即被控制的机器Server), 假如ip为192.168.60.110;A和B的系统都是Linux 在A上运行命令:# ssh-keygen -t rsa (连续三次回车,即在本地生成了公钥和私钥,不设置密码)# ssh root@192.168.60.110 "mkdir .ssh" (需要输入密码)# scp ~/.ssh/id_rsa.pub root@192.168.60.110:.ssh/

随机推荐