zoukankan      html  css  js  c++  java
  • SSH免密登录

    用Git过程中看到过SSH什么的,之前不会就不想去看,今天就克服一下困难把



    1. SSH是什么

    SSH(Secure Shell)是较可靠的专为远程登录会话和其他网络服务提供安全性的协议,该协议会通过非对称加密方式对客户端发送的数据加密,对接收端的数据进行解密,从而实现数据传输的安全性。但传统的服务如FTP、Telnet都是明文传输,数据传输不安全,容易收到中间人攻击


    OpenSSH是SSH协议的开源实现,OpenSSH工具的安装和使用都较为简单,一般的Unix系统、Linux系统、FreeBSD系统都附带对应的程序包,其默认端口为22


    SSH可以做到:

    • 数据加密,防止DNS和IP欺骗
    • 数据压缩,加快传输速度




    2. 实现原理

    SSH是在传输层和应用层的协议。在传输层中(通常是TCP/IP)提供数据加密、密码主机认证、数据完整性服务;在应用层中提供用户认证(服务器质询)、会话标记(证明密钥所有权)、远程命令执行、登录会话、转发TCP/IP等服务


    SSH由客户端和服务端组成。服务端提供对连接的处理(公共密钥认证、密钥交换、对称密钥加密),客户端提供SSH程序(远程登陆、安全文件传输)


    SSH的验证方式有两种。一种是基于账号和密码的,类似于普通的登录功能、还有一种是基于密钥的,需要将你的公钥放入服务器才能使用


    SSH基于密钥登录时,会携带上对应的公钥文件(在相应的用户目录下的.ssh文件夹内),默认找id_rsa公钥。SSH生成的配置信息默认在当前用户下的.ssh文件夹中,其中:

    • known_hosts:在客户端中,记录曾经连接的服务器授权
    • authorized_keys:在服务器中,是客户端免密连接的公钥文件

    质询:服务器将客户端发过来公钥对比,然后用公钥加密"质询"发给客户端,客户端私钥解密之后再发回服务器





    3. 使用步骤


    3.1 服务器安装OpenSSH

    # 笔者使用Centos7,一般默认安装了,查看版本即可
    $ ssh -V
    OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
    
    # 查看是否开启服务
    $ service sshd status
    Active: active (running)
    

    3.2 客户端安装

    # 笔者使用Win10,默认也是装了的,查看版本
    # 或者安装XShell等集成SSH客户端的软件
    $ ssh -V
    OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2
    

    3.3 基于账号密码的连接

    # 1. 格式:ssh 服务器用户名@服务器ip地址
    ssh root@1.116.136.xxx
    
    # 2. 第一次连接主机会提示:无法验证主机的真实性,其公钥指纹是xxxx,确定连接吗?输入yes即可
    yes
    
    # 3.root@1.116.136.xxx's password:
    直接输入服务器密码即可(之后就远程登录的服务器)
    

    3.4 基于密钥的连接

    # 1. 客户端生成公钥、私钥(id_rsa、id_rsa.pub)
    $ ssh-keygen -t rsa -C "xxxx@qq.com"
    -t:指定密钥类型,有rsa
    -C:注释文字,常用邮箱
    -f:指定密钥名(不建议使用)
    
    # 会问你密钥保存的文件名,以及输入两次密码(用于push时验证的),都可以为空直接Enter跳过
    
    # 2. 将客户端生成的公钥传到服务器当前用户名的.ssh文件夹下,并改名为authorized_keys
    
    # 3. 再次使用ssh连接就会免密,而客户端的.ssh文件夹下会生成known_hosts文件,记录登陆过的主机
    $ ssh root@1.116.136.xxx
    





    4. GitHub使用SSH


    4.1 Github上添加公钥

    Title随便写,而Key则要填入客户端生成的.pub公钥


    4.2 选择SSH协议地址

    Github上SSH协议是以git@github开头的


    4.3 测试

    # 用pull代码测试,发现可免密登录
    $ git pull git@github.com:xxx/xxx.git
    



  • 相关阅读:
    再见OI,AFO
    时间复杂度
    NOIP真题:矩阵取数问题
    [USACO12FEB]附近的牛Nearby Cows
    合唱队
    子串
    ZJOI2010基站选址
    分治FFT学习笔记
    「HAOI2018」染色
    「SDOI2015」序列统计
  • 原文地址:https://www.cnblogs.com/Howlet/p/15025888.html
Copyright © 2011-2022 走看看