zoukankan      html  css  js  c++  java
  • 74.ssh服务介绍(基于密码连接)

    1.SSH服务知识介绍:

    01:SSH服务主要有两个软件构成:openssh和openssl;
    02:openssh用于远程连接,openssl用于加密;
    03:SSH连接是先进行加密,后进行连接;
    04:SSH服务包含客户端命令ssh和scp远程拷贝命令;
    05:SSH协议有SSH1和SSH2两个版本,SSH1有漏洞,目前都是SSH2协议;
    06:当ssh客户端与ssh服务端连接时所使用的协议需一致;
    

    2.SSH服务连接过程及原理(基于口令)

    ## SSH服务端【系统:CentOS 7.5  主机名:web02  内网IP地址:172.16.1.23   SSH端口:921 】
    01:SSH服务端配置文件/etc/ssh/sshd_config文件中某些参数说明
    
    HostKey /etc/ssh/ssh_host_rsa_key          #SSH服务中SSH1协议使用RSA加密技术生成的密钥
    #HostKey /etc/ssh/ssh_host_dsa_key         #SSH服务中SSH1版本没有DSA加密技术,所以默认是注释了的
     
    HostKey /etc/ssh/ssh_host_ecdsa_key        #SSH服务中SSH2协议使用RSA加密技术生成的密钥
    HostKey /etc/ssh/ssh_host_ed25519_key      #SSH服务中SSH2协议使用DSA加密技术生成的密钥
    02:目前SSH协议版本都是SSH2,且在连接时都是使用rsa加密技术来进行加密后再进行连接
    03:SSH服务启动时会生成SSH1和SSH2协议产生的公钥和私钥钥,我们来看一看;
    
    [root@web02 ~]# ll /etc/ssh/ssh_host_rsa_key*     #  这是SSH服务中SSH1协议使用RSA加密技术生成的公钥和私钥
    -rw-r-----. 1 root ssh_keys 1675 Jul 26 15:23 /etc/ssh/ssh_host_rsa_key
    -rw-r--r--. 1 root root      382 Jul 26 15:23 /etc/ssh/ssh_host_rsa_key.pub
     
    [root@web02 ~]# ll /etc/ssh/ssh_host_ecdsa_key*   # 这是SSH服务中SSH2协议使用RSA加密技术生成的公钥和私钥
    -rw-r-----. 1 root ssh_keys 227 Jul 26 15:23 /etc/ssh/ssh_host_ecdsa_key
    -rw-r--r--. 1 root root     162 Jul 26 15:23 /etc/ssh/ssh_host_ecdsa_key.pub
     04:我们来看一看SSH服务启动时用ssh2协议使用RSA加密技术生成的公钥
    
    [root@lala ~]# cat /etc/ssh/ssh_host_ecdsa_key.pub 
    ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPOfkYeytiLVUbg3c0xM//fXzCnLSTqS7Hdtei+lzTfPf6aSCAsRHlvdnNCk05oy8WHppjtdyc2c9AJuD9AOqv8= 
    

    3.具体操作步骤:

    01:客户端向服务端主动发起请求,并提示你是否连接,这里还没有输入yes
    [root@lala ~]# ssh -p22 root@10.20.70.222
    The authenticity of host '10.20.70.222 (10.20.70.222)' can't be established.
    ECDSA key fingerprint is SHA256:qP2qjxurisNBzTxoKeI9fnFTF/OxNlwEtBBxAB4atb0.
    ECDSA key fingerprint is MD5:49:37:02:83:f8:0b:42:b9:c6:09:cb:2e:25:a1:31:c2.
    Are you sure you want to continue connecting (yes/no)? 
    
    02:查看.ssh/known_hosts 看有没有对应服务端的公钥,没有
    [root@lala ~]# cat .ssh/known_hosts 
    
    03:客户端同意连接,输入yes,且提示你输入密码,这里还没有输入密码哈
    [root@lala ~]# ssh -p22 root@10.20.70.222
    The authenticity of host '10.20.70.222 (10.20.70.222)' can't be established.
    ECDSA key fingerprint is SHA256:qP2qjxurisNBzTxoKeI9fnFTF/OxNlwEtBBxAB4atb0.
    ECDSA key fingerprint is MD5:49:37:02:83:f8:0b:42:b9:c6:09:cb:2e:25:a1:31:c2.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '10.20.70.222' (ECDSA) to the list of known hosts.
    root@10.20.70.222's password: 
    
    04:查看.ssh/known_hosts 看有没有对应服务端的公钥,有。当你输入了yes之后就保证了服务端的公钥已经保存到了你的known_hosts文件中
    [root@lala ~]# cat .ssh/known_hosts 
    10.20.70.222 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPOfkYeytiLVUbg3c0xM//fXzCnLSTqS7Hdtei+lzTfPf6aSCAsRHlvdnNCk05oy8WHppjtdyc2c9AJuD9AOqv8=
    
    05:这个时候你在发送链接请求,会发现前面的yes部分没有了
    [root@lala ~]# ssh -p22 root@10.20.70.222
    root@10.20.70.222's password: 
    
    06:这个时候你将服务端密码输入就连接上了我的客户端ip是10.20.70.223,输入查看ip命令发现已经变了
    [root@lala ~]# ssh -p22 root@10.20.70.222
    root@10.20.70.222's password: 
    Last login: Mon Jul 20 09:32:46 2020 from 10.20.70.1
    [root@lala ~]# 
    [root@lala ~]# 
    [root@lala ~]# hostname -I
    10.20.70.222 
    

    参考:

    https://www.cnblogs.com/chenliangc/articles/11725677.html

  • 相关阅读:
    hibernate_0100_HelloWorld
    MYSQL子查询的五种形式
    JSF是什么?它与Struts是什么关系?
    nop指令的作用
    htmlparser实现从网页上抓取数据(收集)
    The Struts dispatcher cannot be found. This is usually caused by using Struts tags without the associated filter. Struts tags are only usable when the
    FCKeditor 在JSP上的完全安装
    Java遍历文件夹的2种方法
    充电电池和充电时间说明
    吃知了有什么好处
  • 原文地址:https://www.cnblogs.com/liuzhanghao/p/13343482.html
Copyright © 2011-2022 走看看