SSH介绍

Ssh是secure shell protocol的简写,由IETF的网络工作小组(Network working GROUP)所制定;它通过对联机数据包加密的技术来进行数据传递,因此,数据很安全.ssh是专为远程登录会话和其他网络服务提供安全性的协议.利用ssh协议可以有效防止远程管理过程中的信息泄露问题.

默认状态下,ssh本身提供两个服务功能:一个是类似telnet的远程联机使用shell的服务,即俗称的ssh;另一个是类似FTP服务的sftp-server,可以提供更安全的FTP.

从客户端来看,ssh提供两种级别的安全验证.

第一种级别(基于口令的安全验证)

只要你知道自己账号和口令,就可以登录到远程主机.所有传输的数据都会被加密.

第二种级别(基于密钥的安全验证)

需要依靠密钥,也就是你必须为自己创建一对密钥,并把公用密钥放在需要访问的服务器上.如果你要连接到ssh服务器上,客户端ssh软件就会向服务器发出请求,请求用你的密钥进行安全验证.服务器收到请求后,先在该服务器上你的用户主目录下寻找你的公用密钥,然后把它和你发送过来的公用密钥进行比较.如果两个密钥一致,服务器就用公用密钥加密”质询(challenge)”并把它发送给客户端软件.

客户端软件收到”质询”之后就可以自己私钥解密再把它发送给服务器.用这种方式,你必须知道自己密钥的口令.但是,与第一种级别相比,第二种级别不需要在网络上传送口令.

Ssh结构

Ssh是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.X和2.X.

用ssh2.X的客户程序是不能连接到ssh1.X的服务程序上去的.OpenSSH同时支持1.X和2.X

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

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

他们的工作机制大致是本地的客户端发送一个连接请求到远程的服务端,服务端检查申请的包和ip地址再发送密钥给ssh的客户端,本地再将密钥发回给服务端,自此连接建立.ssh1.X和ssh2.X在连接协议上有一些差异.

一旦建立一个安全传输层连接,客户机就发送一个服务请求.当用户认证完成之后,会发送第二个服务请求.这样就允许新定义的协议可以与上述协议共存.

网络数据包的加密技术通常是通过所谓的一对公钥与私钥(Public key and Private key)组合成的密钥对进行加密与解密的操作.如下图所示,主机端所要传给client端的数据,会先通过公钥加密后再到网络上传输.而到达client端后,再经由私钥将加密的数据解开来.由于在Internet上传输的数据是加密过的,所以数据内容当然就比较安全了.      加密数据

1.SSH protocol version1

每一台ssh服务器主机都可以使用rsa加密方式来产生一个1024-bit的rsa key,这个

  • 分发数据(一把钥匙开多把锁)

1.1操作系统环境

Cat /etc/redhat-release

Uname –mi

Uname –r

主机网络参数设置:

主机名

默认网关

网卡eth0

机器名

A-Server

10.0.0.254

192.168.125.128

中心分发服务器

B-Server

10.0.0.254

192.168.125.130

接收节点服务器

c-Server

10.0.0.254

10.0.0.183

接收节点服务器

2.1需求分析

2.1.1具体需求

要求所有服务器在同一用户wj系统用户下,实现A机器从本地分发数据到B、c机器上,在分发过程中不需要B、c的提示系统密码验证,当然,还包括批量查看客户机上的cpu,load,mem等使用信息.

即实现从A服务器发布数据到B、c客户端服务器或查看信息的免密码登录验证解决方案.

分发数据流方式如下:

A------------àB

A-----------àC

提示:形象比喻,即一把钥匙(A)开多把锁(B/c)

2.1.2实现拓扑

3.1行前准备

3.1.1添加系统账号

在部署密钥之前,首先要分别在A、B和C服务器上添加好wj用户并设置密码,然后,通过wj用户来实现多个服务器之间免密码登录,以A服务器为例,具体步骤如下:

Useradd wj

Echo “123456”|passwd –stdin wj

如果已存在同名用户,可通过userdel –rf wj来删除之,然后在添加.

4.1开始部署

因为A服务器为中心分发服务器,所以我们选择在A端建立public key(锁)与private key(钥匙)

在本文中,为了方便读者更好的学习和理解,我这里把服务器密钥对以生活中大家每天都要接触到的锁和钥匙的关系来打比方.public key公钥比作锁,private key私钥比作钥匙.密钥的基本原理可以理解为生活中用钥匙开锁的过程.

特别提示:在整个方案实现中,钥匙(Private key)和锁(Public key)仅需要建立一次即可,可以在A,B,C任意机器上来执行,本文选择了在A服务器来生成密钥对.

4.1.1生成密钥对

“去超市买锁”

在A机器上建立dsa key,生成Public key锁与private key钥匙,执行步骤如下.

Su – wj

Ssh-keygen –t dsa

Ssh-keygen 是生成密钥的工具,-t参数指建立密钥的类型,这里是建立dsa类型密钥.也可以执行ssh-keygen –t rsa来建立rsa类型密钥

Rsa与dsa加密算法区别

Rsa是一种加密算法(rsa也可以进行数字签名的)它的简写的来由是ron rivest adi shamir和leo三个人名字首字母连接起来就是rsa.

Dsa就是数字签名算法的英文全称的简写,即digital signature algorithm,简写是dsa,rsa既可以进行加密,也可以进行数字签名实现认证,而dsa只能用于数字签名从而实现认证.

提示:1.请一路按回车键即可.密钥的生成可以在任意机器上,且生成一次即可.

2.可以看到密钥的存放路径为用户家目录下的.ssh目录。

  1. 有关ssh-keygen说明请man ssh-keygen,或参考http://lamp.linux.gov.cn/OpenSSH/ssh-keygen.html

ls –l  .ssh/

ls –ld .ssh/

另外,在创建密钥对的同时在用户家目录下生成了.ssh隐藏目录.

.ssh目录的权限为700,另外,private key(钥匙)id_dsa文件权限为600,public key(锁)id_dsa.pub当前文件权限为644.其中,private key(钥匙)id_dsa文件权限必须为600.

4.1.2分发公钥(锁)

把公钥(锁)从A拷贝到b,c端用户家目录各一份.

即在A端执行如下命令:

cd .ssh/

ls –l –time-style=long-iso

ssh-copy-id –i id_dsa.pub wj@192.168.125.130要把192.168.125.130当作锁端,只需要id_dsa.pub放到192.168.125.130上家目录的.ssh目录即可(需要改名).

Ssh-copy-id为系统自带的shell脚本,可用来分发公钥(锁).输入yes在本地添加ssh公钥信息.该信息默认会被添加到本地~/.ssh/know_hosts文件中.

Ssh-copy-id –I id_dsa.pub wj@192.168.125.130

我们看到b,c服务器上的wj用户目录多了一个.ssh目录,.ssh目录里增加了一个文件authorized_keys,那么这个文件就是改了名字的id_dsa.pub文件.默认情况下ssh的配置文件中默认调用的公钥路径为.ssh,文件名就是authorized_keys.

特别注意:当要分发的节点机器有数百台时,使用ssh-copy-id就相对麻烦,因为第一次拷贝时需要人工输入密码.解决这个问题的办法就是用expect交互式命令来实现,另一个办法是手动处理公钥的办法.

具体方案是,把公钥改名后做成压缩包,然后放到一个所有分发节点都可以访问的http server上然后在所有分发的机器上(secure crt本身就有这个功能,可以同时批量管理数百台服务器)写脚本直接wget下载解压即可.不过手工修改会带来部署出问题的风险,其中最常见的问题是.ssh目录权限的问题.

4.1.4ssh-copy-id的特殊应用

如果ssh修改成为特殊端口,如52113,那么,用上面的ssh-copy-id命令就无法进行分发公钥了.如果仍要使用ssh-copy-id的话:

1.命令为:ssh-copy-id –i id_dsa.pub “-p 52113 wj@192.168.125.130” 特殊端口分发,适当加引号

2.编辑vi /usr/bin/ssh-copy-id在第41行做如下修改,见加粗部分

41{eval “$GET_ID”;}|ssh –p52113 $1”umask 077;test –d.ssh||mkdir .ssh;cat>>.ssh/authorized_keys”||exit 1

在中心分发服务器A机器上执行了ssh-copy-id脚本成功后,从B 10.0.0.142和C 10.0.0143上可以看到从A端拷贝过来的公钥(锁文件)如下:

防止ssh暴力破解:

1.密码给8位到14位,多种组合

2.改默认端口,禁用root登录

3.fail2ban python2.4以上 lastb查看/var/log/btmp文件比较大,封掉ip

在/etc/init.d/下创建服务启动脚本

查找以上文件位置启动脚本

linux ssh详解相关推荐

  1. Linux系统详解 系统的启动、登录、注销与开关机

    Linux系统详解 第六篇:系统的启动.登录.注销与开关机 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://johncai.blo ...

  2. linux系统服务详解 用于Linux系统服务优化

    linux系统服务详解 用于Linux系统服务优化 服务名        必需(是/否)用途描述        注解 acon              否       语言支持        特别支 ...

  3. linux下载命令 scp,linux命令详解之scp命令

    作用 scp命令常用于linux之间复制文件和目录. scp是secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令. 格式 从本地复制到远程 复制文件 sc ...

  4. Linux使用详解(进阶篇)

    文章目录 Linux使用详解(进阶篇) 1.Linux目录说明 2.操作防火墙 3.ulimit命令和history命令 4.RPM和Yum的使用 5.设置系统字符集 6.vi & vim编辑 ...

  5. linux添加cfg,Linux安装详解-配置ks.cfg实现自动安装过程

    Linux安装详解-配置ks.cfg实现自动安装过程 之前发过一篇关于通过PXE实现Linux批量无人值守自动安装的文章(可以参考),不过写的只是具体的配置和操作,对于原理部分没有说明,最近通过一段时 ...

  6. Linux系统服务详解

    Linux系统服务详解 服务,其实就是运行在操作系统后台的一个或者多个应用程序,为计算机系统或用户提供某项特定的服务.服务通常是不中断运行的,随时准备接受请求,从而提供某项服务.下面详细介绍下linu ...

  7. 《Linux命令详解手册》——Linux畅销书作家又一力作

    关注IT,更要关心IT人,让系统管理员以及程序员工作得更加轻松和快乐.鉴于此, 图灵公司引进了国外知名出版社John Wiley and Sons出版的Fedora Linux Toolbox: 10 ...

  8. 每天一个linux命令(25):linux文件属性详解

    每天一个linux命令(25):linux文件属性详解 Linux 文件或目录的属性主要包括:文件或目录的节点.种类.权限模式.链接数量.所归属的用户和用户组.最近访问或修改的时间等内容.具体情况如下 ...

  9. c linux time微秒_学习linux,看这篇1.5w多字的linux命令详解(6小时讲明白Linux)

    用心分享,共同成长 没有什么比每天进步一点点更重要了 本篇文章主要讲解了一些linux常用命令,主要讲解模式是,命令介绍.命令参数格式.命令参数.命令常用参数示例.由于linux命令较多,我还特意选了 ...

最新文章

  1. iOS 修改网络图片的大小 宽和高
  2. github php面试题,GitHub - johnsong261510/php_interviews: PHP 面试题汇总、剑指 Offer PHP 代码实现版本...
  3. 比较两篇文章的相似性
  4. Win7下硬盘安装Ubuntu10.10双系统
  5. 使用zipKin构建NetCore分布式链路跟踪
  6. LeetCode —— 深搜水题记录
  7. 数据结构—堆栈(思维导图)
  8. JPA+Hibernate 3.3 ——第一个JPA程序
  9. mysql subquery_mysql-8-subquery
  10. csdn积分c币获取方法
  11. c语言求婚代码大全,求一个C语言表白的代码
  12. 微信支付开发(1)--普通商户申请、账户验证、签约、公众号授权流程详解
  13. 2021年疫情再度爆发,面对停课教培机构该如何应对?
  14. E.密码(算法选修)
  15. 高德地图刷新当前位置_定位-服务-教程-地图 JS API | 高德地图API
  16. selenium鼠标操作
  17. 在线PDF编辑网站http://www.pdfescape.com
  18. Android 一共有多少种动画?准确告诉你!
  19. XTAL OSC的经验小结
  20. 9.1 使用QPxmap类加载图片

热门文章

  1. rails pry使用_在Rails 6中使用Gritter
  2. 花朵个人简历自我介绍PPT模板
  3. 试用期工资只发70%是不是违法的
  4. PCB电路板的SMT贴片加工:(PCBA)的制造工艺
  5. matplotlib绘制色阶渐变颜色条
  6. 【mac使用技巧】Mac上命令行 subl 直接唤起sublime来查看日志文件
  7. LINUX如何克隆硬盘
  8. 芯片与android关系,紫光展锐芯片平台实现与安卓11同步意味着什么
  9. 平曲线坐标、反算桩号计算程序
  10. 使用JavaFX2.0编写国际象棋游戏