目录
1、简介
SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,SSH为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。
远程管理Linux系统基本上都要使用到ssh,因为: telnet、FTP等传输方式是以明文传送用户认证信息,本质上是不安全的。SSH(Secure Shell)目前较可靠,是专为远程登录会话和其他忘了服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题,透过SSH可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。
2、优点
1、数据传输是加密的,可以防止信息泄漏
2、数据传输是压缩的,可以提高传输速度
3、客户端与服务端
客户端
1、Linux客户端:ssh,scp,sftp,slogin
2.、windows客户端:xshellt,MobaXterm,putty,securecrt,ssh secu
服务端
1、SSH服务端:OpenSSH (开源)
2、ssh服务端主要包括两个服务功能:ssh远程连接和sftp服务 (文件传输功能)
4、原理
公钥首次连接原理
①客户端发起链接请求
②服务端返回自己的公钥,以及一个会话ID (这一步客户端得到服务端公钥
③客户端生成密钥对
④客户端用自己的公钥异或会话ID,计算出一个值Res,并用服务端的公钥加密
⑤客户端发送加后的值到服务端,服务端用私钥解密,得到Res
⑥服务端用解密后的值Res异或会话ID,计算出客户端的公钥 这一步服务端得到客户端公钥
⑦双方各自持有三个秘钥,分别为自己的一对公、私钥,以及对方的公钥,之后的所有通讯都会被加密
登录
每次使用sshd登录到其他主机,双方都会生成一个文件known hosts把对方主机的公钥加载进ssh/known hosts文件里。
1.ssh[远程主机用户名]@[远程服务器主机名或IP地址] -p port (端口号)当在Linux主机上远程连接另一台Linux 主机时,如果当前所登录的用户是root的,当连接另一台主机时也是用root用户登录时,可以接使用ssh+IP,端口默认 (端口默认为22) 即可,如果端口不是默认的情况下,需要使用-p指定端口。
2.ssh -l[远程主机用户名][远程服务器主机名或IP 地址] -p 远程服务器port ;
3.ssh t 中间主机IP ssh 目标主机IP
5、实操
用ecdsa做一个钥匙对,实现免密登录