linux的ssh服务器架构,虚拟机之间基于公钥和私钥ssh登录,windows生成**对通过xshell登录虚拟机

一、常见的远程管理工具方式:

|--RDP(remote desktop protocal )协议,windows远程桌面管理(图形界面)

|--telenet CLI界面下远程管理(内容明文传输) 端口号: 23

|--ssh  CLI界面下的远程管理(内容加密传输)  端口号: 22    

|--RFB (remote frame buffer) 图形化远程管理协议 VNC (Virtual Network Computing)使用的协议。(在linux unix Macos 下的图形界面远程管理工具)

 

ssh服务端由2部分组成: openssh(提供ssh服务)    openssl(提供加密的程序)

二、SSH算法

SSH为了确保信息的安全传输,从连接发起到完成各阶段的各个点SSH协议采用了许多不同类型的数据加密技术,包括可逆的对称加密,非对称加密以及不可逆的哈希散列

 

它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持

 

     非对称加密算法

公钥是公开的秘钥,私钥是私有的秘钥!一般都是发送公钥,不会发送私钥!加密和解密使用的不是同一秘钥!公钥加密,私钥解密;私钥加密,公钥解密!

非对称加密算法的基本过程:甲方生成一对**并将其中的一把作为公用**向其它方公开;得到该公用**的乙方使用该**对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用**对加密后的信息进行解密。

 

      不可逆的哈希(散列)算法

哈希散列算法是一种不可逆算法,除非你知道原始值生成散列对比,否则你永远无法通过散列算出原始值

 

三、用户怎么知道自己收到的公钥是货真价实的公钥呢?

在服务器发过来公钥时,万一被人替换公钥,怎么辨明真伪呢?第三方认证单位CA,每一把秘钥都要向CA认证单位认证注册!客户端的浏览器在浏览时,会自己向CA 单位确认此证书是否合法注册!

 

ssh两种验证级别:

第一种级别(基于口令的安全验证)

第二种级别(基于密匙的安全验证)

ssh客户端登陆服务端的过程说明

linux的ssh服务器架构,虚拟机之间基于公钥和私钥ssh登录,windows生成**对通过xshell登录虚拟机

                                                                          ssh自带的sftp功能

sftp安全文件传送协议,可以为传输文件提供一种安全的网络的加密方法

SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作

SFTP同样是使用加密传输认证信息和传输的数据

传输效率比普通的FTP要低得多

ftp客户端连接                   

                sftp -o Port=22 [email protected]                   

                put /etc/hosts /tmp        

注:上传本地hosts文件到对端tmp目录下           

                get /etc/hosts /home/omd   

    注:下载对端hosts文件到本地/home/omd目录下

       远程连接默认连接用户的家目录

 

 

 

 

 

                                                                             重点:构建ssh服务器

一、基于两台linux主机,且在同一局域网内:

其中的user是你要远程登录以什么用户身份登录,当然你要用那个用户,就要在那个用户家目录下创建秘钥对和.ssh目录

1.创建秘钥对

ssh-****** -t rsa    还可以在后面-b指定秘钥的位数,否则默认是2048位

 

2.客户端自己向服务端发送公钥

 

ssh-copy-id [email protected]主机ip 把公钥发送到那个用户的家目录下

 

3.服务端亲自从客户端获取公钥

scp [email protected]主机ip:公钥所在的目录 服务器将要将公钥放的目录

例如:scp [email protected]:/root/.ssh/id_rsa.pub  /root/.ssh/authorized_keys

记住:在服务器端识别找自己的公钥时,找的是authoized_keys这个文件,所以要将复制过来的公钥文件改名为authorized_keys!

 

再在客户端ssh服务端,注意现在这些操作完了之后只能实现单方向的远程登陆不能实现互相ssh

 

4.远程登录

ssh [email protected]主机ip

 

 

 

二、windows主机xshell免密登录linux虚拟机

1.Windows主机生成**对步骤:

linux的ssh服务器架构,虚拟机之间基于公钥和私钥ssh登录,windows生成**对通过xshell登录虚拟机

linux的ssh服务器架构,虚拟机之间基于公钥和私钥ssh登录,windows生成**对通过xshell登录虚拟机

保存公钥到桌面:

linux的ssh服务器架构,虚拟机之间基于公钥和私钥ssh登录,windows生成**对通过xshell登录虚拟机

这样windows的**对就生成好了

 

2.在linux虚拟机中的操作:

先确保.ssh目录下没有任何的authorized_keys文件,有就删除它

linux的ssh服务器架构,虚拟机之间基于公钥和私钥ssh登录,windows生成**对通过xshell登录虚拟机

在/root/.ssh/下输入rz

linux的ssh服务器架构,虚拟机之间基于公钥和私钥ssh登录,windows生成**对通过xshell登录虚拟机

弹出下面这个选择框,选择刚才保存到桌面的这个公钥文件,并打开

linux的ssh服务器架构,虚拟机之间基于公钥和私钥ssh登录,windows生成**对通过xshell登录虚拟机

文件传输若不成功则说明,要么没在用户家目录下输入rz,要么没有删除原有的authorized_keys

 

SSH排查问题

1.判断物理链路是否通  ping 192.168.25.130    | 是否同一个网的           

           ping   本身是icmp协议

2.判断服务是否正常  systemctl status sshd

3.Linux防火墙

   firewall-cmd --list-all

4.测试:

  ssh [email protected]

 

SSH章节小结

 1.ssh远程的加密连接协议,相关软件openssh,openssl                

    2.默认端口22                

    3.ssh版本协议                

    4.服务器ssh连接,ftp连接,sshd守护进程,开机启动                

    5.ssh客户端重要命令:ssh(用户登录&&远程命令),scp,sftp,   

    6.安全验证方式:口令,**  学习原理                

    7.ssh服务优化:改端口,改监听,no root,no empty,no DNS,

    8.ssh**对,公钥在服务器端,私钥在客户端

 

如何防止SSH登录入侵

    1.**登录,更改端口                       

    2.监听本地内网IP(ListenAddress 192.168.25.*)

 

修改SSH服务启动文件sshd的几个点

修改 /etc/ssh/sshd_config

     UseDNS no  加快响应速度因为在内网环境下

     PermitRootLogin no  不运行root用户直接登录

     Port 11544 更改访问端口号

     ListenAddress  192.168.25.130  只监听内网的IP

     Allow User anoncvs     当前环境允许登录的用户

     PermitRootLogin no      是否允许root用户登录,一般不允许开