第七章ssh sftp scp
对数据进行了加密和压缩

版本号协商,可能客户端和服务端的版本号不一致,服务端向客户端发送一个ssh协商,告诉客户端使用的ssh协议的版本号是多少,客户端在接收到了这个协商报文之后,会查看该报文,如果和服务端版本号相同,那就接受服务端的版本,进行接下来的会话协商。如果客户端发现服务端的版本和自己的不一样,那就主动的将自己使用的版本发送给服务端,告诉服务端,请你使用我的版本。最终的结果一定要是客户端和服务端版本一致,或者是客户端可以兼容服务端,不然,会话在这时候就断开了。

秘钥和会话协商阶段
两者协商之后,就使用相同的方式,通过协商好的秘钥算法,随机算出一个会话秘钥,这个会话是在客户端产生的,这个会话秘钥用于后期对数据进行加密,是对称加密的秘钥。服务器端会生成公钥,服务器会把公钥发送给客户端。客户端当前用户的家目录会产生一个.ssh的目录,该目录下存放的是服务器的公钥。客户端用服务器的公钥对会话秘钥加密,传输给服务器端,服务器用自己的私钥对会话秘钥进行解密来获取会话秘钥,服务器拿到会话秘钥之后,后期的数据加密就是安全的。

认证阶段
客户端向服务端发起,服务端向客户端进行认证,认证方式分为两种,基于口令的认证和基于秘钥的认证。基于秘钥的认证的秘钥和会话秘钥没有关系。

口令认证 是对称加密
密钥认证是非对称加密
基于口令:客户端使用服务器上的用户名和密码进行认证。使用会话秘钥加密后的用户名和口令发送给服务器。服务器通过会话秘钥解密后得到的待验证的用户名和口令,用其与本地的用户名和口令进行验证,验证通过,则向客户端返回认证成功的消息;则认证失败,则向客户端返回认证失败的消息。
但是不能保证正在连接的主机就是需要连接的主机,可能会有其他的主机冒充真正的主机,会受到“中间人”攻击的威胁。
基于秘钥的认证:需要依靠RSA(一种非对称加密算法)秘钥,即客户端用户需要生成一对秘钥,并事先把公钥存放在服务器上。
(1)客户端向服务器发送连接请求,请求使用秘钥进行认证,请求报文中会包含IP地址和用户名同时包含自己的公钥。服务器收到请求后,先在即将进行远程登录用户的家目录下查找客户端用户之前存放的公钥(该公钥保存在用户家目录中)
你要用服务器上哪个用户登录,就把公钥放在在哪个用户的家目录下
(2)如果两个秘钥一致,主机就使用存放的公钥加密“质询”(challenge)随机字符串,并把它发送给客户端。

ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.16.30.254

sftp
sftp 用户名@主机名/ip
ls cd mkdir pwd rm exit
put 上传 put 上传的文件/目录
get 下载
get 下载的文件/目录

scp 远程复制
可以把 本地的文件复制到远程主机
可以把远程主机上的文件复制到本地上

第七章ssh sftp scp的更多相关文章

  1. Linux :ssh sftp scp

    SSH 概述 1 SSH协议,Secure Shell ,为客户提供安全的shel环境,默认端口22 OpenSSH服务 服务名称:sshd 主程序:/usr/bin/sshd    /usr/bin ...

  2. FTP 与 SSH 的安全性对比, 以及FTP,SSH,SFTP,SCP 的关系简单解析!

    FTP 与 SSH 的安全性对比? ftP: http://baike.baidu.com/subview/369/6149695.htm TCP/IP协议中,FTP标准命令TCP端口号为21,Por ...

  3. ssh sftp scp命令

    scp local_file remote_username@remote_ip:remote_folder 或者 scp local_file remote_username@remote_ip:r ...

  4. ssh 配置文件讲解大全 ssh调试模式 sftp scp strace进行调试 特权分离

    ssh 配置文件讲解大全  ssh调试模式  sftp scp strace进行调试  特权分离 http://blog.chinaunix.net/uid-16728139-id-3265394.h ...

  5. Centos下关于ssh、scp与rsync设置与应用

    最近应公司要求,需要对文件数据进行远程传输与备份操作,特此写了一篇文章记录下了关于ssh.scp以及rsync的应用配置全过程,可能过程太过罗嗦,但主要就是想在不遗漏每个过程的情况下对此进行阐述,希望 ...

  6. 第六章 SSH远程服务介绍

    一.相关介绍 1.简介SSH是一个安全协议,在进行数据传输时,会对数据包进行加密处理,加密后在进行数据传输.确保了数据传输安全.那SSH服务主要功能有哪些呢? 1)提供远程连接的服务 linux远程连 ...

  7. Linux下几种文件传输命令 sz rz sftp scp

    Linux下几种文件传输命令 sz rz sftp scp 最近在部署系统时接触了一些文件传输命令,分别做一下简单记录: 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具 ...

  8. [原创] Linux下几种文件传输命令 sz rz sftp scp介绍

    Linux下几种文件传输命令 sz rz sftp scp介绍 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具.由于它是基于SSH的,会在传输过程中对用户的密码.数据等 ...

  9. 第1章 ssh和SSH服务(包含隧道内容)

    本文对SSH连接验证机制进行了非常详细的分析,还详细介绍了ssh客户端工具的各种功能,相信能让各位对ssh有个全方位较透彻的了解,而不是仅仅只会用它来连接远程主机. 另外,本人翻译了ssh客户端命令的 ...

  10. 第1章 ssh命令和SSH服务详解

    基础服务类系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 本文对SSH连接验证机制进行了非常详细的分析,还详细介绍了ssh客户端工具的各种 ...

随机推荐

  1. (jmeter笔记)添加正则提取器和JSON提取器

    添加正则提取器和JSON提取器 1.正则提取器: 返回的Token如下: 引用名称:可以理解为变量名 //调用表示${变量名} 正则表达式:"Token":"(.+?)& ...

  2. 织梦dede批量替换文章标题、关键词、正文内容等解决办法介绍

    织梦dede批量替换文章标题.关键词.正文内容等解决办法介绍 相信对于很多织梦dedecms站长来说,应该经常遇到采集文章或者复制别人文章,需要批量修改文章标题.关键词.正文.作者.来源.日期等等相关 ...

  3. 杭电OJ1029题C++实现

    解题思路:因为要求的数出现的次数总是比其他数字出现的次数多1,所以若总是用相同的数去与其他的数相抵,那么最后只剩下一个,那就是要求的数. 另外需要注意的一点就是,最好不要去开长度为999999的数组, ...

  4. Flask默认配置参数

    方式一:字段赋值方式导入 1 2 3 4 5 6 7 8 9 10 11 12 13 14 from flask import Flask   app = Flask(__name__)   app. ...

  5. Git、GitHub、GitLab三者之间的区别

    1.Git Git是一个版本控制系统. 版本控制是一种用于记录一个或多个文件内容变化,方便我们查阅特定版本修订情况的系统. 总结: (1)分布式版本控制系统下的本地仓库包含代码库还有历史库,在本地就可 ...

  6. Jupyter lab 切换kernel

    在使用pytorch的时候需要用到pandas这个包,报错说"no module named pandas", 但是我在终端查找了conda 装了pandas,所以不是安装的问题, ...

  7. 解决mikumikudance丢失dxdx_43.dll问题

    首先是MMD软件下载 我的操作系统是win10-x64 设备是19版小新pro13 mmd官网地址https://learnmmd.com/downloads/ 或者戳这里 链接:https://pa ...

  8. 如何卸载cad 2022?怎么把cad 2022彻底卸载删除干净重新安装的方法【转载】

    标题:cad 2022重新安装方法经验总结,利用卸载清理工具完全彻底排查删除干净cad 2022各种残留注册表和文件.cad 2022显示已安装或者报错出现提示安装未完成某些产品无法安装的问题,怎么完 ...

  9. eclipse静态资源保存不重启(热部署静态资源/html)

    简单的来说就是windows->Prefrence->搜索 build automatically 并勾选就可以 不同的版本设置选项可能略微不同,其实比较简单但是新手可能不好找,所以帮到的 ...

  10. IT工具知识-10:Markdown小技巧(不断更新)

    Markdown小技巧 1. 如何实现在文内不同关键字间跳转 该技巧是基于typora软件下使用的,参考的这个教程:视频链接 该教程有两种跳转方式:一.使用Markdown语法,二.使用HTML的锚点 ...