SSH

一、 关于ssh

 

SSH取名自安全外壳(Secure Shell),它现在是通过互联网访问网络设备和服务器的唯一的主要协议。

 

SSH默认情况下通过端口22运行,该端口号可以更改。

 

SSH是一种非常安全的协议,因为它共享并发送经过加密的信息,从而为通过互联网等不安全的网络访问的数据提供了机密性和安全性。

 

一旦通讯的数据使用SSH经过加密,就极难解压和读取该数据,所以我们的密码在公共网络上传输也变得很安全。

 

SSH还使用公钥用于对访问服务器的用户验证身份,这是一种很好的做法,为我们提供了极高的安全性。

 

两种协议对比

 

1) SSH Telnet 应用领域基本重合。

 

2) SSH Telnet 更加安全。

 

3) 在发送数据时,SSH会对数据加密,而Telnet不会(它会直接发送明文,包括密码)。

 

4) SSH使用公钥授权,而Telnet不使用任何授权。

 

5) 在带宽上,SSH 会比Telnet多一点点开销。

 

6) SSH 几乎在所有场合代替了Telnet

 

二、 数据加密和数字签名

    1. 对称加密

      传输方法的验证密钥是一样的。

    2.非对称加密

公钥:大家都能知道的密钥

私钥:只有自己才能知道的密钥

公钥与私钥无法互推。

    3.数据加密:

AB 进行数据传输

A的公钥需要拷贝到B

B的公钥需要拷贝到A

A ---> B

数据A 使用B的公钥加密 加密数据A -----> B 使用B的私钥解密 加密数据A --->数据A

 

4.数字签名

      A--->B

      数据A 使用A的私钥加密 加密数据A ----->B 使用A的公钥解密加密数据A  --->数据A  

 

三、 实验

  ssh登录方式:

    1. 账户名、密码登录
    2. 密钥对验证登录

  安装:

  配置:

    1. 配置文件

服务端:/etc/ssh/sshd_config

客户端:/etc/ssh/ssh_config

    2.修改配置

Port 22  //修改端口号

ListenAddress 0.0.0.0 //修改监听地址

Protocol 2  //修改版本号

PermitRootLogin yes //允许root用户登录

PubkeyAuthentication yes //开启密钥对登录

AuthorizedKeysFile .ssh/authorized_keys //公钥存储文件

PermitEmptyPasswords no  //不允许空密码用户登录

PasswordAuthentication yes //允许账户密码验证登录

UseDNS no //不适用DNS解析

 

      密钥对验证登录:

    场景:

  客户端上登录lisi用户并以服务端的zhangsan用户的身份登录服务器

1) 创建用户

客户端: useradd lisi

服务端: useradd zhangsan  ;  passwd zhangsan

2) 创建密钥对

客户端:su  -  lisi

生成密钥:ssh-keygen  -t  rsa ; 一路回车

3) 客户端将lisi 的公钥拷贝到服务端的zhangsan用户

cd /home/lisi/.ssh

ssh-copy-id -i id_rsa.pub zhangsan@192.168.1.100

4) 在客户端验证登录,lisi -->zhangsan

  [lisi@localhost .ssh]$ ssh zhangsan@192.168.1.100

  发现不需要密码即可登录。

 

远程拷贝命令;

拷贝文件:

  scp  文件名  用户名@IP地址:文件存放路径

拷贝目录

  scp  -r  目录名  用户名@IP地址:目录存放路径

 

远程命令执行:

  ssh 用户名@IP  命令

sftp服务:

  sftp 用户名@IP

  sftp服务中的操作指令与ftp指令一致

posted @ 2021-09-23 20:22  天才小2b  阅读(201)  评论(0)    收藏  举报