SSH ,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。

默认端口号:22

客户端:openssh-client     服务端:openssh(linux系统默认客户端,服务端都安装了

dropbear:非开源版的ssh

ssh的客户端可以用 XSHELL,Securecrt, Mobaxterm等工具进行连接

ssh的功能

1.远程登录
2.文件传输
3.功能共享
(都是加密实现)

两个认证
     客户端验证服务器端
     服务器端对客户端的做验证

ssh独立守护进程服务(以centos6为例)
# service sshd start|stop|restart|status
# chkconfig sshd on

客户端在收到服务器段的公钥之后,会生成一个密钥对,然后基于这个密钥实现安全传输
1. 当服务器端启动了ssh,那么就会自动生成一个密钥对
2. 当服务器端收到用户连接请求,那么就将公钥文件发送给客户端
3. 客户端将收到的公钥文件保存 ~/.ssh/known_hosts
下次登录时候,如果有目标主机的公钥文件,那么就是对于目标服务器的认证完成
下次登录时候,如果有目标主机的公钥不存在文件或者信息有误,那么就是对目标服务器的认证失败
4. 客户端保存了服务器端公钥文件后,会立刻产生一个私钥文件,构成一个密钥对,然后用公钥文件加密密钥对,然后将加密的数据传递到服务器端。服务器端解密以后,也就有了这样的一个密钥对。
5. 双方基于这个密钥对来通信

ssh基于c/s架构
客户端:
linux下客户端:ssh,配置文件:/etc/ssh/ssh_config

服务器端;
名称:sshd,配置文件:/etc/ssh/sshd_config

linux下ssh客户端的使用方法

格式

ssh [-p port] [user@]host [command]

服务器段的配置文件(常用配置)
Port 22 指定sshd服务所监听的端口
ListenAddress 0.0.0.0 指定sshd服务所监听的IP
UseDNS yes|no 指定是否将主机名称做解析
PermitRootLogin yes|no 指定是否运行root登录系统

基于密钥方式登录系统

1. 在用户的家目录中提前准备密钥文件(公钥)
2. 登录的时候,客户端会将公钥文件发送给服务器端,然后服务器会做比对两个公钥,如果比对成功,会向客户端发送一个质询(该质询是用传输密钥对中的公钥加密)
3. 客户度收到这个质询之后,会进行解密,然后将解密的结果发送给服务器端

案例:实现密钥方式登录系统
规划
server:10.220.5.63
client:10.220.5.67

1.在客户端器端创建一个密钥对

-t rsa 指定加密算法

[root@67 ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): <<<密钥对的保存位置
/root/.ssh/id_rsa already exists.
Enter passphrase (empty for no passphrase): <<<对密钥对加密密码
Enter same passphrase again: <<<确认密码
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:iOndEAzGN3gx6OW8NtxoqRQ5oXEqtfb7besGUqKfpDc root@67managerslave
The key's randomart image is:
+---[RSA ]----+
| .ooo. |
| o.*o=. |
| . B Oo. |
|. = *o+o |
| o oo*o=S |
| ..=.Xo. |
| =.B.o. |
| . E .o |
| . o.++. |
+----[SHA256]-----+

2.查看秘钥对

id_rsa       私钥文件

id_rsa.pub   公钥文件

[root@67 ~]# ls /root/.ssh
id_rsa id_rsa.pub

3.传送公钥到服务器端主机

[root@ ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@10.220.5.63
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@10.220.5.63'

Number of key(s) added:
Now try logging into the machine, with: "ssh 'root@10.220.5.63'"
and check to make sure that only the key(s) you wanted were added.

说明:
-i:指定要传输的密钥文件
root@10.220.5.63:指定传输到哪个主机上面
传递到目标主机之后,公钥文件会被重命名为authorized_keys,该文件的权限必须600

3.在客户端可以直接登录服务器端

[root@ ~]# ssh 10.220.5.63
Last failed login: Sun Nov :: CST from 10.220.5.67 on ssh:notty
There was failed login attempt since the last successful login.
Last login: Sun Nov :: from 10.220.5.70
[root@ ~]# <<<已登录

linux ssh客户端工具

ssh  作用:远程登录或者远程执行命令
   格式:ssh -p 端口 用户@主机 [命令]
scp   作用:传输文件
格式:
推送:scp /path/file user@host:/path
拉取:scp user@host:/path/file /path
选项
-P 端口:指定端口号
-r:递归传输一个目录及其内部的文件
-p:保留文件的属性不变
-v:显示传输过程信息
-l:限制传输速率

总结:实现给多个主机分发文件
1. 发送端需要有私钥文件
2. 所有的接收端需要有公钥文件
3. 所有节点都需要有相同的用户
4. 公钥文件和私钥文件必须有正确的权限

ssh登录缓慢
启用对主机名做反解
方式1:修改配置文件,禁止做反解 UseDns no
方式2:修改 /etc/hosts 添加一个主机名称的解析记录
方式3:ssh -v 查看登录过程信息,判断故障点

将一个文件传递到非用户家目录下,默认是没有权限,解决方式
1. 用root身份执行操作
2. 用suid
3. 分两步走,
第一步:先传递到目标主机的用户的家目录中
第二步:远程执行命令,将目标主机家目录中哪个文件移动到目标位置(依赖sudo)

案例:web1用scp将文件a.txt传递到web2的/root下(以tom身份来传输文件)
第一步:在web2上为tom做sudo授权
# visudo
tom ALL=() /bin/mv

第二步:在web1上执行scp,将a.txt传递到web2主机的/home/tom下
# scp a.txt tom@web2:/home/tom

第三步:在web1上执行ssh,将a.txt从tom家目录中移动到root下
# ssh -t tom@web2 sudo mv /home/tom/a.txt /root/

ssh相关的操作日志
/var/log/secure

生产环境中,实现文件批量分发方案有
1:基于ssh key+shell
优点:简单
缺点:节点数量几百台为宜
2:puppet
优点:功能强大、支持节点数量很多
缺点:操作复杂
3:saltstack
以上两者的折中方案
4:ftp/http+crotab
非主流方案

ssh服务简介及应用与服务的进程的类型的更多相关文章

  1. J2EE基础之Web服务简介

    J2EE基础之Web服务简介 1.什么是Web服务? 在人们的日常生活中,经常会查询网页上某城市的天气信息,这些信息都是动态的.实时的,它是专业的气象站提供的一种服务.例如,在网上购物时,通常采用网上 ...

  2. HTTP的REST服务简介

      REST简介   一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式.”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么, ...

  3. Spring Cloud与微服务构建:微服务简介

    Spring Cloud与微服务构建:微服务简介 单体架构及其不足 1.单体架构简介 在软件设计中,经常提及和使用经典的3曾模型,即表示层.业务逻辑层和数据访问层. 表示层:用于直接和用户交互,也成为 ...

  4. SpringCloud微服务简介(一)

    Spring Cloud简单认识 微服务英文名称Microservice,Microservice架构模式就是将整个Web应用组织为一系列小的Web服务.这些小的Web服务可以独立地编译及部署,并通过 ...

  5. NFS服务简介

    NFS服务简介 NFS是Network File System的缩写,即网络文件系统.NFS是由Sun开发并发展起来的一项用于在不同机器,不同操作系统之间通过网络互相分享各自的文件.NFS serve ...

  6. linux Xinetd服务简介

    http://www.chuanke.com/course/72351180839190528______.html 1.什么是xinetdextended internet daemonxinetd ...

  7. 1、Spring Cloud - 微服务简介

    前言: 业界大牛马丁.福勒(Martin Fowler) 这样描述微服务: 论文网址:https://martinfowler.com/articles/microservices.html 就目前而 ...

  8. linux 服务简介

    Linux服务(Linux services)对于每个应用Linux的用户来说都很重要.关闭不需要的服务,可以让Linux运行的更高效,但并不是所有的Linux服务都可以关闭.今天安装了一次CentO ...

  9. AD 域服务简介(三)- Java 对 AD 域用户的增删改查操作

    博客地址:http://www.moonxy.com 关于AD 域服务器搭建及其使用,请参阅:AD 域服务简介(一) - 基于 LDAP 的 AD 域服务器搭建及其使用 Java 获取 AD 域用户, ...

随机推荐

  1. LOJ 2551 「JSOI2018」列队——主席树+二分

    题目:https://loj.ac/problem/2551 答案是排序后依次走到 K ~ K+r-l . 想维护一个区间排序后的结果,使得可以在上面二分.求和:二分可以知道贡献是正还是负. 于是想用 ...

  2. JS:Math 对象方法

    Math 对象方法方法     描述Math.ceil(x)     对数进行上舍入.(向上取整:大于等于x的最小整数)Math.floor(x)     对数进行下舍入.(小于等于x的最大整数)Ma ...

  3. express中遇到的一个小问题“403”

    这样子的一个express简单项目文件执行会出现403 Forbidden的错误: var express = require('express'); var app = express(); app ...

  4. 【环境部署】centos7安装mysql-5.7.19 group-replication

    --mysql高可用官方文档: https://dev.mysql.com/doc/refman/5.7/en/group-replication.html mysql下载地址: https://ww ...

  5. python列表的基础操作

    Operation Result Trans x in s True if an item of s is equal to x, else False x值是否在s列表中 x not in s Fa ...

  6. Oracle数据库自带表空间的详细说明

    1.SYSAUX表空间 SYSAUX表空间在Oracle Database 10g中引入,作为SYSTEM表空间的辅助表空间.以前一些使用独立表空间或系统表空间的数据库组件现在在SYSAUX表空间中创 ...

  7. Windows 2012 安装 SQL Server 2012,.Net Framework 3.5安装不成的解决办法

    This behavior can also be caused by a system administrator who configures the computer to use Window ...

  8. [OutLook]关闭Outlook时最小化

    关闭Outlook时最小化 dll 11.首先把dll 文件复制到C:\Users\hetao\AppData\Roaming\Microsoft\AddIns 22.然后以管理员的方式运行cmd.e ...

  9. Java笔记Spring(八)

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  10. flutter 访问网页+http请求

    一.目录 1.访问网页 2.http请求 -----------------------------这是分割线----------------------------- 1.访问网页 基于url_la ...