1. SSH是安全的加密协议(secure shell protocol),用于远程连接liunx服务器。

2. SSH默认端口是22,安全协议版本SSH2,除了2之外还有SSH1(有漏洞没用)。

3. SSH服务端主要包含两个服务功能SSH远程连接,SFTP服务。

4. Linux SSH客户端包含ssh远程连接命令,以及远程拷贝scp命令等。

加密原理:

SSH服务介绍_第1张图片

1.X原理

客户端发出请求,服务端发送公钥,客户端的私钥与服务端的公钥经过算法得出值发送给服务端,然后建立联机,这期间服务端不对这个值进行校验,所以其他的客户端有可能冒充进行伪通讯。

2.X原理

为了改正1.x的缺点2版本多加一个确认联机正确性的Diffie-Hellman机制,在每次数据传输中,Server都会以该机制检查数据的来源是否正确。

基于密钥的安全验证

一堆秘钥对(锁和钥匙)

连接过程:

客户端有公钥和私钥,一些验证方式只需要客户端有私钥即可

1. cli发送公钥到ser

2. cli发送连接请求

3. Ser使用私钥和公钥加密得到字串发送给cli

4. Cli使用私钥解密该字串发给ser

5. Ser校验通过,连接建立

基于口令的安全验证:

使用ssh客户端登录:

ssh –p22 [email protected] (-p参数制定ssh的端口,默认22的话不用写)

我只想过去执行命令回来:ssh [email protected] /sbin/ifconfig

clip_image003

SSH服务介绍_第2张图片

/.ssh/known_hosts是存放已知主机密钥信息

SSH服务介绍_第3张图片

clip_image009

ssh为加密的远程连接协议,相关软件有openssh,openssl。

默认端口22

协议版本1.x和2.x,2.x更安全。

服务端ssh远程连接服务,sftp服务。Sshd守护进程,开机要自启动。

Ssh客户端包含ssh,scp,sftp命令。

Ssh安全验证方式:口令和密钥,这两种都是基于口令的,SSH密钥登录的原理

Ssh服务安全优化,修改默认端口22,禁止root远程连接,禁止dns,SSH只监听内网IP

Ssh密钥对,公钥(public key)在服务器端,比喻就是锁头,私钥(private key)在客户端,比喻就是钥匙。

SCP传输协议

安全的远程文件复制程序

示例:

-p 端口 –r递归(连同目录一起传输)-p不修改属性

scp -P22 -r -p . [email protected]:/tmp/

相同效果可以使用:

rsync -avz /etc -e 'ssh -p 22' [email protected]:/tmp/1

scp小结:

1. scp是加密的远程拷贝,而cp仅为本地拷贝

2. 可以把数据从一台机器推送到另一台机器,也可以从其它服务器把数据拉回到本地执行命令的服务器。

3. 每次都是全量完整拷贝,因此效率不高,适合第一次拷贝用,如果需要增量拷贝,用rsync。