深圳手机端网站建设专业,wordpress 迁移 步骤,网站备案 拨测,在线生成网站地图Ubuntu下如何管理多个ssh密钥
前言
我一直在逃避这个问题#xff0c;误以为我能够单纯地用一个 ssh 走天下。
好吧#xff0c;现实是我不得不管理多个 ssh 做#xff0c;那就写个博客总结一下吧。
查阅后发现前人已经总结了不少#xff0c;那我就结合之后#xff…Ubuntu下如何管理多个ssh密钥
前言
我一直在逃避这个问题误以为我能够单纯地用一个 ssh 走天下。
好吧现实是我不得不管理多个 ssh 做那就写个博客总结一下吧。
查阅后发现前人已经总结了不少那我就结合之后再发展一下吧参考资料按照 markdown 的规范放在文末。
Note:
笔者 Ubuntu 为 24.04 LTS
目录
[toc]
如何生成并添加第一个密钥
ssh-keygen -t rsa -C youremailyourcompany.com然后一路回车就会在 ~/.ssh 下生成 id_rsa, id_rsa.pub ssh-add ~/.ssh/id_rsa将密钥 id_rsa 添加到 ssh-agent 中。 ssh-add -l可以通过该命令来确认私钥列表。 ssh-add -D该命令可以清空私钥列表。
至于如何配置 gitee 和 github 等则默认都会这篇文章的重心在于如何管理多个 ssh 密钥。
生成并添加多个密钥
生成并添加多个密钥我们就需要编辑 config 文件。
ssh-keygen -t rsa -C usernameaddress然后它就会让你 Enter file in which to save the key以及有一个默认的路径。 可以手动输入自己想要保存的路径(绝对路径)。 之后会让你 Enter passphrase (empty for no passphrase)就是输入口令空则无口令。这个口令是用来加密你的私钥的避免你的私钥泄漏后任何人都能用这个私钥冒充你。 确认一遍口令Enter same passphrase again。 接下来就会告诉你 identification 私钥被存在哪里以及 public key 公钥被存在哪里等等信息。 ssh-add ~/.ssh/your_identification我们将其添加到 ssh-agent 中。 vim ~/.ssh/config创建 ssh 的 config 文件。 # gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/your_identification
User You# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/your_identification
User YouHost: 取任意名字 HostName 这个是真实的域名地址 IdentityFile这里是 identification (私钥)的地址 PreferredAuthentications配置登录时用什么权限认证 User配置使用用户名 PreferredAuthentications keyboard-interactive 交互式认证方式当 SSH 客户端尝试连接到服务器时如果服务器配置为使用 keyboard-interactive 认证服务器会向客户端发送一系列问题通常是用户名和密码客户端需要提供答案。 password 需要输入用户名和密码来连接服务器。 publickey 用户生成密钥对将公钥配置在服务器上连接服务器时服务器会要求用户提供公钥对应的私钥来证明身份。 ssh -T git[Host]配置完成后你就可以通过上面的命令来检验是否配置正确。
算力平台与服务器
通常你只能获得服务器地址用户名和密码。这种情况下我们只能这样进行 config 文件的编辑即不设置 IdentityFilePreferredAuthentications 设置 password 或者 keyboard-interactive
Host platform
HostName address
PreferredAuthentications keyboard-interactive
User You
连接gitee但出现问题
你可能会看到类似这样的信息如果你直接回车就会告诉你 Host key verification failed 然后就退出来无法连接
The authenticity of host gitee.com (180.76.198.77) cant be established.
ED25519 key fingerprint is SHA256:ULzij2u99B9eWYFTw1Q4ErYG/aepHLbu96PAUCoV88.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
这是 SSH 客户端用来防止中间人攻击(MITM)的的措施当你第一次连接到一个 SSH 服务器时客户端会要求你确认服务器的密钥指纹是否与你已知的指纹匹配。如果指纹匹配你可以确信你正在连接到正确的服务器。
也就是说我们需要自己确认一下服务器的密钥指纹是否正确如果正确我们要进行添加才能避免这样的信息出现。
如果我们确认密钥指纹正确我们就可以输入 yes 的选项则会有下面的信息
Warning: Permanently added gitee.com (ED25519) to the list of known hosts.
警告我们已经永久把这个服务器的密钥指纹添加到已知指纹中了。
此后再连接 gitee.com 就不会出现这样上面的问题了。
结合 vscode 使用
结合 vscode 使用很简单下载对应的插件即可(如果前面你已经在相应文件下写了 config 文件的话)。
个人下载了下面的插件
Remote - SSHRemote - SSH: Editing Configuration FilesRemote - TunnelsRemote Explorer
然后不出意味的话点击左边旁栏的 Remote Explorer 就可以看到先前已经配置好的远程服务器了。
参考资料
git配置多个ssh key: https://www.cnblogs.com/acelin/p/15015719.htmlgit配置多个SSH密钥: https://www.cnblogs.com/muzidaitou/p/13163407.htmlgithub/gitlab 管理多个ssh key: https://www.cnblogs.com/fanyong/p/3962455.html