zoukankan      html  css  js  c++  java
  • ssh基础

    前言

      ssh是标准网络协议,实现Unix系统远程登录,默认端口22,采用密文形式在网络中传输数据;

      相对于明文传输的Telnet,具有更高的安全性;

      基于ssh协议产生了ssh客户端、ssh服务器等软件,客户端、服务之间通过ssh协议传输数据;


    ssh客户端、服务器

      ssh客户端有两种方式登录服务器:口令 和 密钥

      第一种:口令

        需要用户名、密码,这要求密码具有足够的复杂度才能获取更高的安全性

        这里的用户名、密码是服务器的用户名、密码

    sudo ssh rocketv2@192.168.2.11 // ssh 用户名@服务器ip  回车后输入密码

      第二种:密钥

        简单解释原理:

          首先,在客户端创建一对公钥、私钥[公钥文件位置:~/.ssh/id_rsa.pub  私钥文件位置:~/.ssh/id_rsa];

          其次,把客户端生成的公钥放到ssh服务器中[位置:~/.ssh/authorized_keys],同时保存好私钥;

          最后,在使用ssh登录时,ssh客户端会把发送私钥 跟 服务器中的公钥匹配,如果匹配成功就可以登录了;


     ssh客户端登录ssh服务器

       由于口令方式上文已讲解过,现在只介绍秘钥方式

       第一步:

        客户端生成公钥、私钥对(记住公私钥对的位置以及名称)

    ssh-keygen -t rsa  //一直回车,就会在“~/.ssh/”下生成“id_rsa、id_rsa.pub”两个文件
    //注意:回车的过程 需要设置密码,一直回车就是默认密码为空 // 这个密码是对私钥的设置,应该设置成ssh服务器的登录密码;一般默认不设置;

      第二步:

        将ssh客户端生成的公钥放到ssh服务器中:可以使用命令的方式、U盘拷贝

    scp ~/.ssh/id_rsa.pub rocketv2@192.168.2.11:/root/  //公钥文件传到/root下

        在ssh服务器上,将公钥中的内容放到~/.ssh/authorized_keys文件中(如果没有.ssh或者authorized_keys文件,手动创建);

      

        第二步中的所有操作,可以使用ssh-copy-id 命令一步到位,在.ssh目录中,使用命令时,会将公钥上传至服务器并创建.ssh/authorized_keys

    ssh-copy-id root@192.168.2.11 //将公钥上传到服务器,创建.ssh/authorized_keys文件

      第三步:

        在客户端登录ssh服务器

    ssh rocketv2@192.168.2.11 //无密码登录

    ssh客户端、服务器安装 (ubuntu 16.04 LTS)

       客户端安装

        1.安装(ssh配置文件在/etc/ssh/ssh_config)客户端一般随系统安装

    sudo apt-get install openssh-client  //安装客户端

      服务器安装

        1.安装  (ssh-server配置文件在/etc/ssh/sshd_config)

    sudo apt-get install openssh-server

        2.检测版本

    sudo ssh -V

        3.检查、开启、关闭服务

    ps -e | grep ssh   //检查 如果有ssh-server说明已经启动,否则使用 sudo /etc/init.d/ssh start启动
    
    sudo /etc/init.d/ssh restart   或者 sudo service sshd restart //重启ssh服务
    
    sudo /etc/init.d/ssh stop      或者 sudo service sshd stop    //关闭服务
    
    sudo /etc/init.d/ssh start     或者 sudo service sshd start   //开启服务

     SSH方式登陆报错

      在ubuntu终端中使用ssh连接远程服务器,登陆失败

      /home/用户/  .ssh/  known_hosts

      /etc/ssh ssh_config

      报错一:

        

        按照报错中的提示:ssh-keygen -f "/home/xubiao/.ssh/known_hosts" -R 107.xxx.xxx.xxx 

        远程主机身份证明已经改动;有可能有些人在做邪恶的事;man-in-the-middle attack(中间人攻击);

      报错二:

        

     (未完待续)

    参考:

      http://www.cnblogs.com/keethebest/p/3184355.html

      http://www.cnblogs.com/fengbeihong/p/3307575.html

      http://www.cnblogs.com/bootoo/p/5068514.html

      http://www.linuxidc.com/Linux/2015-03/115056.htm

        http://www.cnblogs.com/kex1n/p/5220823.html

  • 相关阅读:
    null和undefined的区别
    "NetworkError: 404 Not Found fontawesome-webfont.woff?v=4.0.3
    php字符串
    php数组
    Oracle 和 MySQL的区别(不完整)
    拦截器和过滤器的区别
    SpringMVC和Struts2的区别
    Redis的介绍
    SpringBoot入门(2)
    SpringBoot入门(1)
  • 原文地址:https://www.cnblogs.com/RocketV2/p/5802466.html
Copyright © 2011-2022 走看看