提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
在使用github的过程中,遇到了创建SSH-Agent密钥管理的问题,于是乎进行了下面的操作:
在github上面添加秘钥的时候,保存会出现这个错误:
Key is invalid. You must supply a key in OpenSSH public key format
提示:以下是本篇文章正文内容,下面案例可供参考
SSH(Secure Shell)是一种用于安全远程登录到计算机系统和执行命令的协议。它通过加密通信的方式,确保用户在网络上的连接是安全的。
以下是 SSH 的主要特点和功能:
安全性: SSH 提供了加密的通信,包括身份验证和数据传输。这使得在不受信任的网络上安全地进行远程管理成为可能。
远程登录: SSH 允许用户从本地计算机登录到远程计算机系统,并在远程系统上执行命令。
文件传输: SSH 支持安全的文件传输,允许用户在本地和远程系统之间传输文件。
端口转发: SSH 可以用于设置端口转发,将本地计算机的端口映射到远程计算机上,实现安全的网络服务。
公钥身份验证: SSH 支持公钥身份验证,允许用户通过公钥和私钥对进行身份验证,而无需输入密码。
代理: SSH 代理(ssh-agent)可用于缓存和管理用户的私钥,以便在会话期间无需再次输入密码。
隧道: SSH 支持创建安全的通信隧道,用于加密和保护网络上的数据传输。
基于账号口令的安全验证是一种常见的身份验证机制,用户需要提供正确的账号(用户名)和口令(密码)才能访问系统或服务。这种验证方式的基本原理如下:
账号: 用户需要提供其唯一标识,通常是一个用户名。这是用于标识用户身份的信息。
口令: 用户必须提供与其账号相关联的密码。这是一个保密信息,只有用户本人应该知道。密码通常通过哈希算法进行存储,以增加安全性。
验证过程: 当用户尝试登录或访问系统时,输入的账号和口令将与系统中存储的相应信息进行比对。如果输入的信息与系统记录的匹配,用户将被授权访问。
安全性考虑:为了增加安全性,密码应该足够复杂,并且定期更新。系统还可以采用一些防护措施,如账号锁定(一定次数失败后锁定账号)、多因素认证等。
通过 SSH 连接到服务是通过 Secure Shell(SSH)协议建立远程连接的过程。以下是连接到服务的基本步骤:
在终端中使用 ssh 命令来建立 SSH 连接。基本的 SSH 连接命令格式如下:
ssh username@hostname
username 是远程服务器上的用户名。
hostname 是远程服务器的主机名或 IP 地址。
例如:
ssh user@example.com
或者,如果使用 IP 地址:
ssh user@192.168.1.100
输入密码: 如果是首次连接或之前未缓存过该服务器的公钥,系统会要求输入密码。输入正确的密码后按回车键。
认证过程: SSH 将进行身份验证并建立加密连接。一旦认证成功,你将进入远程服务器的命令行界面。
如果连接成功,你就可以在远程服务器上执行命令、编辑文件等操作。在连接的过程中,SSH 会确保通信是加密的,从而提供了一种安全的远程访问方式。
首先,检查是否已经存在 SSH 密钥。打开终端并执行以下命令:
ls -al ~/.ssh
查看目录中是否存在 id_rsa 和 id_rsa.pub 文件。如果这两个文件存在,你已经有了一个 SSH 密钥。
我的终端输出:
(base) l@l:~$ l -al ~/.ssh
总用量 16
drwxrwxr-x 2 l l 4096 9月 11 14:44 .
drwxr-xr-x 61 l l 4096 1月 24 11:24 ..
-rw-rw-r-- 1 l l 113 9月 13 13:58 config
-rw-r--r-- 1 l l 2440 11月 30 18:11 known_hosts
即是没有相应的文件,于是执行下面的命令:
如果在步骤 1 中不存在 SSH 密钥,或者你想要生成一个新的密钥对,执行以下命令:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
在这个命令中,将 “[email protected]” 替换为你的 GitHub 注册邮箱。按照提示,你可以选择为新密钥指定文件名和路径,或者直接按 Enter 使用默认路径。
我的终端输出:
base) l@l:~$ ssh-keygen -t rsa -b 4096 -C "[email protected]"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/l/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/l/.ssh/id_rsa
Your public key has been saved in /home/l/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:RRTmtjOHhGF8mZgFKoCBHiRaArYWnnKXBlt8vzOFlS4 z@163.com
The key's randomart image is:
+---[RSA 4096]----+
|O*+.. .+**= |
|B++=...o+** |
|+=+ =....== |
|oo o . E+oo |
| S+= . |
| + + |
| o |
| |
| |
+----[SHA256]-----+
如果出现以上打印内容, 则说明你生成成功了
运行以下命令将 SSH 密钥添加到 SSH-Agent:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
我的终端输出:
(base) l@l:/media/l$ eval "$(ssh-agent -s)"
Agent pid 152382
(base) l@l:/media/l$ ssh-add ~/.ssh/id_rsa
Identity added: /home/l/.ssh/id_rsa (z@163.com)
(base) l@l:/media/l$ xclip -sel clip < ~/.ss
执行以下命令来将 SSH 公钥复制到剪贴板:
xclip -sel clip < ~/.ssh/id_rsa.pub
我的终端输出:
(base) l@l:/media/ls$ xclip -sel clip < ~/.ssh/id_rsa.pub
Command 'xclip' not found, but can be installed with:
sudo apt install xclip
如果没有安装 xclip,你可以使用以下命令:
sudo apt-get install xclip
再次运行:
xclip -sel clip < ~/.ssh/id_rsa.pub
登录到你的 GitHub 帐户。
在右上角,点击你的头像,然后选择 “Settings”。
在左侧导航栏中,点击 “SSH and GPG keys”。
点击 “New SSH key”。
在 “Title” 字段中,为密钥提供一个描述性的名称。
在 “Key” 字段中,粘贴你复制的 SSH 公钥。
点击 “Add SSH key”。
最后,为了测试是否成功,运行以下命令:
ssh -T git@github.com
如果一切设置正确,你将看到类似以下的消息:
Hi your_username! You've successfully authenticated, but GitHub does not provide shell access.
至此,你已经成功生成并添加 SSH 密钥,可以使用 SSH 协议与 GitHub 进行通信。
okok ,以上就是构建github中SSH密钥的流程,如有不当之处,还请大家斧正!!!!