手机版
你好,游客 登录 注册
背景:
阅读新闻

Linux下的SSH实验环境搭建与管理

[日期:2017-05-05] 来源:Linux社区  作者:blxueyuan [字体: ]

实验环境

服务端:xuegod-63   IP192.168.1.63

客户端:xuegod-64   IP192.168.1.64

   客户端普通用户:ceshi  密码:123456

安装好扫描软件rpm -ivh /mnt/Packages/nmap-5.21-4.el6.x86_64.rpm

实验目标

1SSHD服务介绍

2SSHD服务安装配置

3:两Linux服务器之间数据拷贝

4SSHD服务作用:

实验步骤

1:搭建环境

1):网桥模式

2):vmtools安装完毕

3):yum源配置完毕

4):nmap安装完毕

5):添加用户完毕

2:实验脚本

第一块:sshd简述与登录应用

SSHD服务简述

SSH 协议:安全外壳协议。为 Secure Shell 的缩写。SSH 为建立在应用层和传输层基础上的安全协议。

sshd服务使用SSH协议可以用来进行远程控制, 或在计算机之间传送文件。

而实现此功能的传统方式,如telnet(终端仿真协议)都是极为不安全的,并且会使用明文传送密码。

OpenSSH软件包,提供了服务端后台程序和客户端工具,用来加密远程控件和文件传输过程中的数据,并由此来代替原来的类似服务。

 

Ssh的标准端口

[root@xuegod-63 ~]# vim /etc/services

wKiom1jdxtyhDuXlAAAbaSendGM033.png 

 

查看一下ssh的包

[root@xuegod-63 Packages]# ls openssh*

openssh-5.3p1-70.el6.x86_64.rpm  #核心文件包

openssh-askpass-5.3p1-70.el6.x86_64.rpm  #xshell用的包

openssh-clients-5.3p1-70.el6.x86_64.rpm  #客户端的包

openssh-server-5.3p1-70.el6.x86_64.rpm  #服务端的包

#这四个包是默认安装好的

 

查看一下包是否安装好

[root@xuegod-63 Packages]# rpm -qa | grep openssh

openssh-clients-5.3p1-70.el6.x86_64

openssh-server-5.3p1-70.el6.x86_64

openssh-5.3p1-70.el6.x86_64

openssh-askpass-5.3p1-70.el6.x86_64

#可以清楚的看到这四个包是默认安装好的,因此不需要我们去安装的,只需要我们去启动一下就OK

 

查看包的安装路径 - - - 这里是举例查看服务端的包

[root@xuegod-63 Packages]# rpm -pql openssh-server-5.3p1-70.el6.x86_64.rpm

/etc/rc.d/init.d/sshd  #ssh服务端的启动路径

/etc/ssh/sshd_config  #ssh服务端的配置文件路径

注:

OpenSSH 常用配置文件有两个/etc/ssh/ssh_config /etc/ssh/sshd_config

ssh_config 为客户端配置文件

sshd_config 为服务器端配置文件

 

查看ssh的运行状态与关闭ssh服务运行

1:查看状态的2中方法

[root@xuegod-63 ~]# service sshd status

[root@xuegod-63 ~]# /etc/init.d/sshd status

#sshd的四个包默认情况下是安装好的,但是默认情况是关闭运行的

2:关闭ssh服务运行的两种方法

[root@xuegod-63 ~]# service sshd stop

[root@xuegod-63 ~]# /etc/init.d/sshd stop

 

启动服务的3种方法

[root@xuegod-63 Packages]# /etc/init.d/sshd start

[root@xuegod-63 Packages]# /etc/init.d/sshd restart

[root@xuegod-63 Packages]# service sshd restart

 

Ssh服务开机加载并查看启动级别

[root@xuegod-63 ~]# chkconfig sshd on

[root@xuegod-63 ~]# chkconfig --list sshd

sshd           0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭

 

第二块:修改配置文件,实战举例:

1:SSH运程登录:身份验证

 

1):Ssh命令参数

[root@xuegod-63 ~]# ssh

-f :需要配合后面的命令,可以不登陆远程主机就直接发送命令过去

-p:如果sshd服务启动在非标准端口,需要使用此参数

 

2):Ssh使用语法

Ssh+远程登录的用户名+@+远程登录的ip地址

 

3):以标准端口22,用root进程登录远程主机

wKioL1jdxuuQAMraAACZfXdV0js906.png 

#由于ssh后面没有加用户名,因此默认的是使用当前用户(即1.63上的root用户)来登陆远程服务器的,

在开头以RSA的哪行后面接的就是远程服务器(即1.64,客户端)的公钥指纹码,如果确认没有问题,那么你就需要输入yes来表示确认,将该指纹码写入到服务器公钥记录文件(~/etc/ssh/ssh_hosts_*)以便对比服务器的正确性,

RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。

现在由于远程服务器(即1.64客户端)的公钥文件已经被记录在本机1.63上了,因此在后面本机1.63在重复登录客户端的话,就不在需要指纹码验证了,

 

4):测试- - -加入用户名远程登录的两种方法

 

wKioL1jdxviQlLwSAAAgw6Lb2sg975.png

wKiom1jdxvnQ1Vk6AAAsdSn_qnA788.png

 

#由于加入了用户名,因此该主机1.63远程登录到客户端的普通用户“ceshi”下,并且,因为该主机1.63登陆过客户端1.64,所以再次登录的时候并没有出现客户端主机公钥的指纹码信息了。

 

5):以飞标准端口222登录远程主机

1:设置sshd 监听端口号

# SSH 预设使用 22 这个port,也可以使用多个port,即重复使用 port 这个设定项目! 

# 例如想要开放 sshd 端口为 22 222 ,则多加一行内容为: Port 222  即可

# 然后重新启动 sshd 这样就好了。 建议大家修改 port number 为其它端口。防止别人暴力破解。

 

2:查看端口

[root@xuegod-63 ~]# netstat -anutp | grep ssh

tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      15477/sshd          

tcp        0      0 :::22                       :::*                        LISTEN      15477/

#这里可以看到监听的端口是22

 

3:修改sshd服务默认监听的端口为22和222

[root@xuegod-63 ~]# vim /etc/ssh/sshd_config

wKioL1jdxwTjKY1cAAAWcI5VPXo741.png 

4:重启服务

[root@xuegod-63 ~]# /etc/init.d/sshd restart

停止 sshd:                                                [确定]

正在启动 sshd:                                            [确定]

 

5:再次查看端口

[root@xuegod-63 ~]# netstat -anutp | grep ssh

tcp        0      0 0.0.0.0:222                 0.0.0.0:*                   LISTEN      16530/sshd          

tcp        0      0 :::222                      :::*                        LISTEN      16530/sshd          

#这里可以看到监听的是222端口

6:测试

wKiom1jdxxLAkh-IAAAVuwhHaOo184.png 

#可以看到,我们是没有登录进去的,告诉我们端口22,连接失败。

wKioL1jdxyLyer2eAADEJKleBlc234.png 

#加“-p”以非端口的形式远程登录。

 

2:服务器公钥记录文件

 

在该主机1.63登录客户端1.64时,本机会主动利用客户端发过来的公钥信息去对比自己的~/etc/ssh/ssh_hosts_*下中有无客户端的公钥,然后进行下面的操作

1):若该主机1.63 ~/etc/ssh/ssh_hosts_*下没有记录客户端的公钥信息,则会询问该主机1.63是否需要记录远程客户端的公钥信息,即范例中回答 “yes”的哪一步。若要记录,则回答yes,表示记录,就会将客户端1.64的公钥信息记录在该主机1.63~/etc/ssh/ssh_hosts_下,且执行后续工作,如果不记录的话,则回答no即可,或者直接“ctrl+c”终端回话,并且退出登录工作。

2):若该主机1.63 ~/etc/ssh/ssh_hosts_*下有记录客户端的公钥信息,则会将客户端1.64发过来的公钥信息与自己的~/etc/ssh/ssh_hosts_下记录的公钥信息进行对比,如果相同,则继续进行登录工作,如果不相同的话,则会出现警告信息,并离开登录工作。这是客户端的自我保护功能,以避免你的服务器是被别人伪装的。

思考 

服务器ssh会经常变更,如果测试用的主机会经常重新安装,那么也就是说,测试主机记录的服务器的公钥信息肯定会不同,那就无法登陆了,这该怎么办呢?

解答:

由于远程服务器客户端的公钥信息是记录在服务端1.63~/etc/ssh/ssh_hosts下面的,那么我们只需要将原有的公钥信息给删除掉,在重新启动服务,再重新连接远程服务器并重新记录新的公钥信息不就OK了吗?

步骤

[root@xuegod-63 ~]# rm /etc/ssh/ssh_hosts*

[root@xuegod-63 ~]# /etc/init.d/sshd restart

更多详情见请继续阅读下一页的精彩内容http://www.linuxidc.com/Linux/2017-05/143461p2.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款