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. PySide2兼容PySide1的补丁代码

    Maya2017以及Nuke10的PySide都升级到PySide2了,之前PySide1的大量代码都无法在新软件上使用,这主要是由于PySide2不仅调整了模块位置,还增删了一系列模块,下面我分享一 ...

  2. 一本通之 一堆迷宫 (Dungeon Master&走出迷宫&走迷宫)

    一本通在线崩溃....... . 有图有真相 这是个三维迷宫,其实和二位迷宫差不多,只是方向多加了2个. 但这个题的输入十分恶心,一度被坑的用cin.ignore(),但还是不过... 它的正确输入方 ...

  3. python 代理的使用

    这里分享一个测试ip的网址     http://ip.filefab.com/index.php scrapy 随机请求头和代理ip的使用原理 import random # 添加一个中间键 cla ...

  4. Listen and Write 18th Feb 2019

    Weighted blanket has becomes very popular in many homes. they claim it can provide better sleep and ...

  5. webapi xml序列化删除<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">标签

    在WebApiConfig.Register中加入config.Formatters.Remove(config.Formatters.XmlFormatter); 移除默认的xml序列化器

  6. linux安装mysql8.0及开启远程访问

    第一步:获取mysql8.0的yum源 进入mysql官网获取RPM包下载地址 https://dev.mysql.com/downloads/repo/yum/     点击下载后, 右键复制链接地 ...

  7. mysql索引总结(转)

    mysql索引总结----mysql 索引类型以及创建 文章归属:http://feiyan.info/16.html,我想自己去写了,但是发现此君总结的非常详细.直接搬过来了 关于MySQL索引的好 ...

  8. mysql 关联

    自关联 设计省信息的表结构provinces id ptitle 设计市信息的表结构cityscitys表的proid表示城市所属的省,对应着provinces表的id值 id ctitle proi ...

  9. CUDA compiler driver nvcc 散点 part 2

    ● nvcc 编译流程图 ● sm 是向前兼容的,高的版本号是在低版本号的基础上添加了新功能得到的,同一 compute_XY 编译的 .cu 文件仅能向后 sm_ZW 的实 GPU 版本(Z > ...

  10. 很不幸,装win10和Ubuntu双系统还是入坑了

    具体问题描述:在安装Ubuntu的时候,没有发现有与windows共存的提示,直接说本计算机没有安装系统.在安装完成后,发现通过BIOS只有进入Ubuntu的启动项,没有进入Windows的启动项. ...