zoukankan      html  css  js  c++  java
  • Linux26_连接远程终端

    常见网络协议:

    HTTPS协议安全性更高;HTTP协议是明文传输的;

    FTP协议:文件传输协议

    电子邮件协议:IMAP、POP3

    Telnet协议:简单易用,在机器间传输简单信息;明文传输

    明文:plaintext

    密文:cyphertext

    WireShark 用于监听网络,截获数据

    ==================================================================

    SSH协议:Secure Shell的缩写

    加密算法大致分为两类:对称加密和非对称加密;

    对称加密,用一个密钥来加密信息;加密解密用同一个密钥;加密方和解密方都需要知道同一个密钥;

    这样的话,客户机和服务器就需要传递这个密钥;传递密钥用的是明文,就有可能被截获;

    为了加密用于对称加密的密钥:非对称加密

    公钥只用来加密;

    用非对称加密的算法,我们只能用私钥来解密;

    公钥可以在网络上用明文传输;是公开的密钥;

    公钥被截获也没有关系;

    用于解密的私钥,要保管好;

    RSA算法:非对称加密算法

    用SSH创建一个安全的通信通道:

    SSH结合使用非对称加密和对称加密两种方法;

    首先,使用非对称加密,安全地传输对称加密地密钥;

    之后,一直使用对称加密密钥作为加密和解密手段;

    非对称加密:太消耗电脑资源;

    非对称加密只是在通信之初传递对称加密密钥;

    加密通道建立过程:

    1、服务器首先将非对称加密的公钥A用明文传递给客户机;

    2、客户机用公钥A加密自己的对称加密密钥C;将经过A加密的C传递给服务器;

    3、服务器用非对称加密的私钥B,来解密被加密过后的C;

    4、现在服务器和客户机都知道了对称加密的密钥C;

    5、关键是对称加密的密钥C从来没有在网络上用明文传递过,就很安全了;

    6、客户机就可以放心地把自己的登录名和密码传递给服务器了;

    以上这些都是自动完成的;

    ===================================================

    SSH的使用:

    1)你已经租用了一台服务器

      这台服务器已经配置好了作为SSH服务器,你什么也不用做;

    2)你没有租用一台服务器

      将自己电脑配置成SSH服务器;

        安装OpenSSH软件,是SSH协议的免费开源实现;

        分为客户端openssh-clients和服务端openssh-server;

        如果你只想用ssh远程连接到别的机器,就下载安装openssh-clients;

        如果你要使自己的机器开放SSH服务,则需要安装openssh-server;这样的话会开启ssd这个守护进程,或者叫精灵进程

        手动开启 sudo systemctl start sshd;   

        停止的话sudo systemctl stop sshd;   

        查看 sudo systemctl status sshd

        将sshd设为开机自启动:sudo systemctl enable sshd

    ==================================================

    实践:

    安装ssh:yum install openssh-server

    启动ssh:systemctl start(restart) sshd

    设置开机运行ssh:systemctl enable sshd

    Windows端:可以使用XShell、SecureCRT等软件;

    Linux端:yum install openssh-clients

    macOS端:已经默认安装了

    =================================================

    用config文件配置SSH:

    全局的SSH文件有两个:

    1)SSH客户端的配置:/etc/ssh/ssh_config

    2)SSH服务端的配置:/etc/ssh/sshd_config

    客户端config文件的使用手册:man ssh_config

    服务端config文件的使用手册:man sshd_config

    客户端config文件的常用配置参数

    host   别名

    hostname 远程主机名

    port   连接到远程主机的端口

    user 用户名

    客户端config文件的配置例子  //客户端修改config文件比较少

    Host myname

      HostName 192.168.0.1

      Port 22

      User root

    服务端config文件的常用配置参数

    Port  sshd服务端口号,默认是22

    PermitRootLogin  是否允许以root用户身份登录,默认是可以

    PasswordAuthentication  是否允许密码验证登录,默认是可以

    PubkeyAuthentication  是否允许公钥验证登录,默认是可以

    PermitEmptyPasswords  是否允许空密码登录,不安全,默认是不可以

    修改全局的config文件后,重启sshd服务使之立即生效

    sudo systemctl restart sshd

    局部的config文件,对于客户端而言:

    root用户的家目录下如果没有.ssh目录,:ssh localhost 来生成

    局部的客户端config文件在用户家目录的.ssh的隐藏目录中

    config默认是没有创建的;

    一般会把config文件的权限修改为600:chmod 600 ~/.ssh/config

    这样就可以用 ssh 别名 来快速登陆远程服务端;

    使用config文件方便管理多个远程主机

    =================================================

    SSH的config文件可以帮助我们配置SSH

    config文件分为全局config文件和局部config文件

    全局的config文件会对所有用户生效,要谨慎修改

     

    =================================================

    SSH免密码登录

    SSH有两种登录方法

    1)基于口令:账户加密码

    2)基于密钥:

      在客户机生成密钥对(公钥、私钥),把公钥上传到服务器,并于服务器的公钥进行比较

    具体过程:

    1、ssh-keygen (默认使用RSA非对称加密算法)在客户机生成密钥对

      该命令等价于 ssh-keygen -t rsa

      运行完之后,会在家目录的~/.ssh/目录下,生成两个文件;

        id_rsa.pub 公钥

        id_rsa        私钥

    2、把客户机的公钥传送到服务器

      ssh-copy-id  root@ip

      等价于ssh-copy-id -i ~/.ssh/id_rsa.pub root@ip

      该命令会把客户机的公钥追加到服务器的一个文件中 authorized_keys  位于服务端~/.ssh/authorized_keys

    如果设置SSH免密码后仍然想使用密码登录

    ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no user@host

    Windows下Putty免密码登录linux方法;

      百度一下

    为了免去每次使用SSH协议连接远程机器都要输入用户密码的麻烦;

    我们可以创建一个用于验证身份的密钥对(公钥、私钥);

    公钥需要传输并存储到远程机器上

    私钥则存在我们自己的电脑里

    之后的SSH连接就不需要输入密码了

  • 相关阅读:
    课堂作业1(出题)
    微信小程序开发1
    asp.net实现通用水晶报表
    JS实现网络拓扑图
    注册与登录 接口与模板
    cookies and session
    Django路由及get请求post请求
    简析JavaScript事件冒泡机制
    屏蔽运营商流量球分析及解决方法
    使用github搭建个人主页
  • 原文地址:https://www.cnblogs.com/grooovvve/p/12513657.html
Copyright © 2011-2022 走看看