zoukankan      html  css  js  c++  java
  • 记录最近遇到的问题

      Index

      1. Ubuntu 环境下生成秘钥 

      2. 使用 git 过程中报错 "gnutls_handshake() failed: The TLS connection was non-properly terminated."

      3. 设置代理的方法

      1. Ubuntu 环境下生成秘钥

      在涉及到 ssh 相关的登录等操作中,常需要进行秘钥生成的操作,这里简单记录下命令。

      Ubuntu 中自带有生成秘钥的命令 ssh-keygen,一般通过 -t 选项选择生成秘钥所使用的加密方式,通过 -b 选项确定秘钥的长度。

        ssh-keygen
        -t dsa | ecdsa | ed25519 | rsa        // 生成秘钥的类型
        -b bits                    // 秘钥长度

      如下命令使用 rsa 方式产生对应的公私钥。

        ssh-keygen -t rsa -b 2048           // 通过 rsa 生成 2048 位的秘钥对

      上述命令运行的过程如下所示,系统首选会提示用户输入保存秘钥的文件位置,并提供对应的默认选项,即 ~/.ssh/id_rsa (对 RSA 秘钥而言),默认存放生成的私钥。对应生成的公钥存放在对应文件加上".pub"后缀的路径下。同时,用户可以选择输入对应的 passphrase,功能类似密码,默认直接回车确定时为空。完成上述步骤后即产生对应的公私钥,注意之前在相同文件路径上已经保存了内容,则新生成的秘钥会对之前的数据进行覆盖。

      

      在完成秘钥生成后,即可使用公钥的内容。

        cat ~/.ssh/id_rsa        //查看公钥内容

      在生成秘钥之后,如果存在需要使用上述秘钥对进行远端服务器免密登录的需求,可以借助 ssh-copy-id 的功能。

            ssh-copy-id -p port username@host_address

      ssh-copy-id 其基本原理是会检查是否存在无法免密登录至 username@host_address 的秘钥对(通过遍历的方式,也被称为 key 未被安装),之后对迁移过程获得的秘钥对,其将对应的公钥加入远端服务器(默认为 ~/.ssh/authorized_keys位置)。

      参考:

      在 Linux 系统上创建 SSH 秘钥对 - VMware Docs

      ssh-copy-id - manpage  

      2. 使用 git 过程中报错 "gnutls_handshake() failed: The TLS connection was non-properly terminated."

      笔者出现这个问题的原因和代理相关,笔者在终端中设置了全局代理变量 ALL_PROXY,此时使用 git 进行 push 操作时即会出现上述问题。

        ALL_PROXY="socks5://127.0.0.1:1080"        //设置代理全局变量

      解决时可以首先查看是否存在设置了代理的全局变量

        env | grep PROXY        // 查看是否存在与代理相关的全局变量

      之后通过 unset 取消对应全局变量的设置,笔者遇到的问题即可解决。

        unset ALL_PROXY        // 取消全局变量 ALL_PROXY 的设置

      另在查看网络资料过程中,发现可以通过 git 自带命令进行代理的设置,记录如下。

        git config --global --list        // 查看全局设置项
        // 设置全局代理
        git config --global http.proxy 'socks5://127.0.0.1:1080'    // 设置 http 代理
        git config --global https.proxy 'socks5://127.0.0.1:1080'    // 设置 https 代理
        git config --global --unset http.proxy                       // 取消代理设置
        // 设置单个网站使用代理
        git config --global http.https://github.com socks:127.0.0.1:1080
        git config --global --unset http.https://github.com

      关于 git config 的简单介绍,可以参考笔者的笔记 git 学习笔记 - git add/commit/log 等基本操作介绍 中 git config 部分。

      参考:解决拉取 github 仓库报错 “gnutls_handshake () failed” 问题

      3. 设置代理的方法

      主要是记录下找到的一个链接,Configuring Softwares to Use proxy

      

  • 相关阅读:
    传球游戏(NOIP2008 普及组第三题)
    立体图(NOIP2008 普及组第四题)
    多项式输出(NOIP2009 普及组第一题)
    分数线划定(NOIP2009 普及组第二题)
    第5到8章
    第四章总结
    实验九
    实验五
    实验四
    实验三
  • 原文地址:https://www.cnblogs.com/yhjoker/p/15515253.html
Copyright © 2011-2022 走看看