SSH简介及配置使用SSH登陆远程主机

来源:互联网 发布:2017年新车销售数据 编辑:程序博客网 时间:2024/05/18 02:35

1.什么是SSH

传统的网络服务程序,如:ftp、POP和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的,就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式,就是“中间人”冒充真正的服务器接收你传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。

从前,一个名为Tatu Yl?nen的芬兰程序员开发了一种网络协议和服务软件,称为SSH(Secure SHell的缩写)。 通过使用SSH,你可以把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,虽然许多人把Secure Shell仅当作Telnet的替代物,但你可以使用它来保护你的网络连接的安全。你可以通过本地或远程系统上的Secure Shell转发其他网络通信,如POP、X、PPP和FTP。你还可以转发其他类型的网络通信,包括CVS和任意其他的TCP通信。另外,你可以使用带TCP包装的Secure Shell,以加强连接的安全性。除此之外,Secure Shell还有一些其他的方便的功能,可用于诸如Oracle之类的应用,也可以将它用于远程备份和像SecurID卡一样的附加认证。

2.SSH的工作机制

SSH分为两部分:客户端部分和服务端部分。

服务端是一个守护进程(demon),他在后台运行并响应来自客户端的连接请求。服务端一般是sshd进程,提供了对远程连接的处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接。

客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。

他们的工作机制大致是本地的客户端发送一个连接请求到远程的服务端,服务端检查申请的包和IP地址再发送密钥给SSH的客户端,本地再将密钥发回给服务端,自此连接建立。刚才所讲的只是SSH连接的大致过程,SSH 1.x和SSH 2.x在连接协议上还有着一些差异。

SSH被设计成为工作于自己的基础之上而不利用超级服务器(inetd),虽然可以通过inetd上的tcpd来运行SSH进程,但是这完全没有必要。启动SSH服务器后,sshd运行起来并在默认的22端口进行监听(你可以用 # ps -waux | grep sshd 来查看sshd是否已经被正确的运行了)如果不是通过inetd启动的SSH,那么SSH就将一直等待连接请求。当请求到来的时候SSH守护进程会产生一个子进程,该子进程进行这次的连接处理。

但是因为受版权和加密算法的限制,现在很多人都转而使用OpenSSH。OpenSSH是SSH的替代软件,而且是免费的,

SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x和2.x。用SSH 2.x的客户程序是不能连接到SSH 1.x的服务程序上去的。OpenSSH 2.x同时支持SSH 1.x和2.x。

3.安装使用OpenSSH

这里主要讲的是基于FreeBSD的OpenSSH的配置,其它Unix及派生系统使用OpenSSH的方法大致相同FreeBSD中集成了OpenSSH,在很多Linux的发行版中都没有包括OpenSSH。但是,可以从网络上下载并安装OpenSSH,他是完全免费的。(可以访问OpenSSH的主页 http://www.openssh.org

生成密钥对

使用ssh-keygen来生成密钥对,比如要用DSA加密算法生成一个4096Bit的密钥对可以输入如下命令(具体参数请参阅man ssh-keygen):

#ssh-keygen -b 4096 -t dsa


%ssh-keygen -b 4096 -t dsa

Generating public/private dsa key pair.
Enter file in which to save the key (/home/fdy84/.ssh/id_dsa):
(密钥对将要存的路径,括号内为默认)
Created directory '/home/fdy84/.ssh'.
Enter passphrase (empty for no passphrase):
(输入口令)
Enter same passphrase again:
(再次输入口令,千万不要忘记否则就只有从新生成密钥了)
Your identification has been saved in /home/fdy84/.ssh/id_dsa.
(你的私钥)
Your public key has been saved in /home/fdy84/.ssh/id_dsa.pub.
(你的公钥)
The key fingerprint is:
bb:1b:f5:1c:77:62:90:21:59:7e:c6:65:e5:24:c6:e5 fdy84@freebsd

密钥分发

刚才生成了一对密钥,把私钥放在自己的机器上的~/.ssh/目录下并保证访问权限是“-rw-------”(即600)。再把生成的公钥放在要连接的远程主机的~/.ssh/目录下并改名为authorized_keys,并且保证文件除了属主外没有被人修改的权限。

4.配置使用SSH

配置服务端

启动SSH服务端很简单只需要运行
# sshd

就可以了。或者在/etc/rc.conf中加入
sshd_enable="YES"
就可以在每次启动时自动运行SSH服务端了。
SSH服务端的配置使用的配置文件是“/etc/ssh/sshd_config”,并且OpenSSH1.x和2.x的服务器配置文件均为此文件。

配置客户端

客户端想连接远程服务器只需要输入
#ssh 域名(或ip)
就可以了

比如想以fdy84用户连接IP地址为192.168.0.6的一台远程服务器 需要键入
# ssh 192.168.0.6 -l fdy84
只要配置正确就可以连上远端的服务器了

5.使用Windows下的SecureCRT进行SSH连接

如果在Windows下想要通过SSH远程管理服务器怎么办?其实Windows有很多远程管理软件,我们在这主要介绍一下SecureCRT中SSH连接的使用。(以Version 4.1.1为准介绍)

Create Public Key...
SecureCRT也可以生成密钥对,不过SecureCRT最大只支持2048Bit的密钥,点选Tools->Create Public Key...,选择密钥算法和密钥长度,输入完口令后再使劲晃鼠标以给它生成密钥的足够的随机量之后就等待计算机生成密钥对,如图

点选左上角的Connect按钮,开启Connect对话框

再点击红圈所示的New Session按钮进入Session Options对话框

在这里我们选择SSH连接,并填入要连接的主机名称(或者ip地址),用户名,再选择基于公钥方式的认证,点击Properties...进入密钥配置对话框

在红色圈所示的位置填入你的私钥文件。

现在点击刚才建立的那个连接进行SSH连接,根据提示点击几个对话框之后就连接上远程的服务器了,如图

特别要注意的是由SecureCRT生成的密钥对和用OpenSSH生成的密钥对在格式上不一样,而且二者都只能认识自己的密钥的格式,所以在用SecureCRT同OpenSSH连接时分别都要用它们自己的密钥格式,可以用任何一个方法生成然后使用ssh-keygen -i 把SecureCRT生成的的密钥转换成OpenSSH的密钥格式,或者用ssh-keygen -e把OpenSSH的密钥格式转换成SecureCRT能够识别的IETF SECSH格式

虽然SSH提供基于密码的登陆,不过基于安全考虑笔者并不推荐使用这种登陆,鉴于现在机器的速度普遍已经很快,推荐使用4096位的密钥以加强安全性。

以上是关于SSH的一些简单的介绍以及使用OpenSSH和SecureCRT进行连接的一些方法,由于本人能力有限文章中难免有些错误,希望感兴趣的读者能够指出并与我联系



1、前言

  江西省IP网络中采用了大量的Cisco路由器。管理员通常采用Telnet远程登录的方式对路由器进行日常维护。由于Telnet、FTP等网络服务程序在网络中采用明文传送口令和数据,其安全性无法得到有效的保障。管理员的用户名和密码一旦被别有用心的人截获,后果将不堪设想。因此如何实现Cisco路由器的安全登录成为网络日常维护工作中首要解决的问题。本文利用Cisco路由器对SSH的支持,通过SSH实现了对路由器的安全登录。
SSH的英文全称是Secure Shell,是由芬兰的一家公司开发的。SSH由客户端和服务端的软件组成,有1.x和2.x两个不兼容的版本。SSH的功能强大,既可以代替Telnet,又可以为FTP、POP3和PPP提供一个安全的“通道”。使用SSH,可以把传输的所有数据进行加密。即使有人截获到数据也无法得到有用的信息。同时,数据经过压缩,大大地加快传输的速度。

  本文将详细介绍在Cisco路由器上用SSH实现安全登录的配置方法。该方法简单易行,安全性高,适于在网络维护工作中推广使用。

  2、在Cisco路由器上配置SSH服务

  在Cisco路由器产品系列中只有7200系列、7500系列和12000系列(GSR)等高端产品的IOS支持SSH。一般支持SSH的IOS版本文件名中都带有K3或者K4字样,K3 代表56bit SSH 加密,K4代表168bit SSH加密。如我省省网GSR 12016和12008上用的IOS 就是一个支持56bit SSH 加密的版本。目前Cisco的产品只支持SSH-1,还不支持SSH-2。下面以GSR 12008为例详细介绍SSH-1的配置方法(斜体字为配置输入的命令):

  ① 配置hostname和ip domain-name:
  Router#configure terminal
  Router(config)#hostname TEST-GSR12008
  TEST-GSR12008(config)#ip domain-name jx.cn.net
  ② 配置登录用户名和密码(以本地认证为例):
  TEST-GSR12008(config)#username test password 0 test
  注:添加一个用户:test,口令:test
  TEST-GSR12008(config)#line vty 0 4
  TEST-GSR12008(config-line)#login local
  在这两部分做完以后,用show run命令就能够看到:
  hostname TEST-GSR12008
  !
  boot system flash gsr-k3p-mz.120-14.S.bin
  enable secret 5 $1$DMyW$gdSIOkCr7p8ytwcRwtnJG.
  enable password 7 094F47C31A0A
  !
  username test password 7 0835495D1D
  clock timezone PRC 16
  redundancy
  main-cpu
  auto-sync startup-config
  !
  !
  !
  !
  ip subnet-zero
  no ip finger
  ip domain-name jx.cn.net
  ip name-server 202.101.224.68
  ip name-server 202.101.226.68
  !
  ③ 配置SSH服务:
  TEST-GSR12008(config)#crypto key generate rsa
  The name for the keys will be: TEST-GSR12008.jx.cn.net
  注:SSH的关键字名就是hostname + . +ip domain-name
  Choose the size of the key modulus in the range of 360 to 2048 for your
  General Purpose Keys. Choosing a key modulus greater than 512 may take
  a few minutes.

  How many bits in the modulus [512]: 注:选择加密位数,用默认就行了
  Generating RSA keys ...
  [OK]

  TEST-GSR12008(config)#end
  TEST-GSR12008#write
  Building configuration...
  这时候用show run命令可以看到:
  ip subnet-zero
  no ip finger
  ip domain-name jx.cn.net
  ip name-server 202.101.224.68
  ip name-server 202.101.226.68
  ip ssh time-out 120
  ip ssh authentication-retries 3
  !
  用命令show ip ssh也能看到:
  SSH Enabled - version 1.5
  Authentication timeout: 120 secs; Authentication retries: 3
  现在SSH服务已经启动,如果需要停止SSH服务,用以下命令:
  TEST-GSR12008(config)#crypto key zeroize rsa
  ④设置SSH参数
  配置好了SSH之后,通过show run命令我们看到SSH默认的参数:超时限定为120秒,认证  重试次数为3次,可以通过下面命令进行修改:
  TEST-GSR12008(config)#ip ssh {[time-out seconds]} | [authentication-retries interger]}
  如果要把超时限定改为180秒,则应该用:
  TEST-GSR12008(config)# ip ssh time-out 180
  如果要把重试次数改成5次,则应该用:
  TEST-GSR12008(config)# ip ssh authentication-retries 5
  这样,SSH已经在路由器上配置成功了,就能够通过SSH进行安全登录了。

  3、SSH安全登录客户端的设置

  Windows自带的Telnet组件和Netterm都不能支持SSH。用SSH登录远端路由器,必须使用特定的客户端软件。目前能够较好地支持SSH的一种客户端软件是Secure CRT,可以到其公司主页http://www.vandyke.com下载。下面就以Secure CRT 3.3为例介绍SSH的客户端配置:

  登录界面如下图:

  Hostname可以直接写IP地址或者是DNS能够解析的域名,加密方式Cipher要选择DES(Data Encryption Standard)。

  然后按OK进入,出现要求输入用户test的密码,如图:

  输入密码以后即可以进入和telnet一样的界面,如图:

  此时就可以象Telnet那样进行操作了,但不用担心口令或数据被恶意截获了。
Cisco路由器也提供了SSH登录的客户端软件,用与路由器之间的互访,其用法与路由器之间Telnet类似,命令为ssh [-c] [-l] [-p] hostname or IP。

  -c 选择加密算法,可以选择DES和3DES;
  -l 此参数后面跟登录用户名;
  -p 选择SSH的服务端口,默认端口为22。

  用SSH实现安全登录还适用于7200系列和7500系列路由器,其配置方法与GSR12008相同。此外SSH还适用于Catalyst 6000/6500系列、5000系列和4000系列等交换机,其配置方法与12008稍有不同,在这里就不作详细介绍了。

原创粉丝点击