首页 > 系统相关 >Ubuntu下如何管理多个ssh密钥

Ubuntu下如何管理多个ssh密钥

时间:2024-11-09 22:19:58浏览次数:5  
标签:私钥 gitee 密钥 Ubuntu 服务器 com ssh

Ubuntu下如何管理多个ssh密钥

前言

我一直在逃避这个问题,误以为我能够单纯地用一个 ssh 走天下。

好吧,现实是我不得不管理多个 ssh 做,那就写个博客总结一下吧。

查阅后发现前人已经总结了不少,那我就结合之后,再发展一下吧,参考资料按照 markdown 的规范,放在文末。

Note:

  • 笔者 Ubuntu​ 为 24.04 LTS


目录

目录


如何生成并添加第一个密钥

  1.  ssh-keygen -t rsa -C "[email protected]"
    

    然后一路回车,就会在 ~/.ssh​ 下生成 id_rsa​, id_rsa.pub

  2.  ssh-add ~/.ssh/id_rsa
    

    将密钥 id_rsa​ 添加到 ssh-agent​ 中。

  3.  ssh-add -l
    

    可以通过该命令来确认私钥列表。

  4.  ssh-add -D
    

    该命令可以清空私钥列表。

至于如何配置 gitee​ 和 github​ 等,则默认都会,这篇文章的重心在于如何管理多个 ssh 密钥。


生成并添加多个密钥

生成并添加多个密钥,我们就需要编辑 config​ 文件。

  1.  ssh-keygen -t rsa -C "username@address"
    

    然后,它就会让你 Enter file in which to save the key​,以及有一个默认的路径。

    可以手动输入自己想要保存的路径(绝对路径)。

    之后,会让你 Enter passphrase (empty for no passphrase)​,就是输入口令,空则无口令。这个口令,是用来加密你的私钥的,避免你的私钥泄漏后,任何人都能用这个私钥冒充你。

    确认一遍口令,Enter same passphrase again​。

    接下来就会告诉你 identification​ 私钥被存在哪里,以及 public key​ 公钥被存在哪里等等信息。

  2.  ssh-add ~/.ssh/your_identification
    

    我们将其添加到 ssh-agent​ 中。

  3.  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 You
    

    Host: 取任意名字
    HostName: 这个是真实的域名地址
    IdentityFile:这里是 identification​ (私钥)的地址
    PreferredAuthentications:配置登录时用什么权限认证
    User:配置使用用户名

    1. PreferredAuthentications

      1. keyboard-interactive

        交互式认证方式,当 SSH 客户端尝试连接到服务器时,如果服务器配置为使用 keyboard-interactive​ 认证,服务器会向客户端发送一系列问题(通常是用户名和密码),客户端需要提供答案。

      2. password

        需要输入用户名和密码来连接服务器。

      3. publickey

        用户生成密钥对,将公钥配置在服务器上,连接服务器时,服务器会要求用户提供公钥对应的私钥来证明身份。

  4.  ssh -T git@[Host]
    

    配置完成后,你就可以通过上面的命令来检验是否配置正确。


算力平台与服务器

通常,你只能获得服务器地址,用户名和密码。这种情况下,我们只能这样进行 config​ 文件的编辑,即不设置 IdentityFile​,PreferredAuthentications​ 设置 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)' can't 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 - SSH
  • Remote - SSH: Editing Configuration Files
  • Remote - Tunnels
  • Remote Explorer

然后,不出意味的话,点击左边旁栏的 Remote Explorer​ 就可以看到先前已经配置好的远程服务器了。


参考资料

标签:私钥,gitee,密钥,Ubuntu,服务器,com,ssh
From: https://www.cnblogs.com/testtraveler/p/18537398/how-to-manage-multiple-ssh-keys-under-ubun

相关文章

  • 【Stata 18软件下载与安装教程 含密钥】
    1、安装包  Stata18:链接:https://pan.quark.cn/s/a34fb60dbe77提取码:av8q2、安装教程1)       双击解压包内Setup.exe安装,弹窗安装对话框  2)       点击下一步  3)       选择Iaccept,点击下一步  4)       输入用户......
  • go: ubuntu安装go 1.23.3
    一,下载官网:https://go.dev/从首页进入到下载页面:如图:选择适合自己系统的版本复制下载地址,从命令行下载$wgethttps://go.dev/dl/go1.23.3.linux-amd64.tar.gz二,安装1,解压:$tar-zxvfgo1.23.3.linux-amd64.tar.gz移动到安装目录:$mvgo/usr/local/soft/2,......
  • 如何在 Ubuntu 18.04 上为生产环境设置 Node.js 应用程序
    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。简介Node.js是一个用于构建服务器端和网络应用程序的开源JavaScript运行环境。该平台可在Linux、macOS、FreeBSD和Windows上运行。虽然你可以在命令行上运行Node.j......
  • ubuntu 下的 nslookup 命令利用 127.0.0.53 查询主机名失败,而使用网关则正常的问题
    遇到一个奇怪的问题,ubuntu下使用KRDC远程访问局域网主机时,连接主机名失败,使用ip则正常。通过nslookup命令发现,局域网主机名没有被正确解析(使用的是默认的127.0.0.53)。而使用网关则可以解析出来。在linux终端下使用命令继续查看resolvectlstatusstracenslookupwi......
  • mysql ubuntu 卸载
    mysql卸载:引用https://developer.aliyun.com/article/1306777在Ubuntu系统中,MySQL是一种常用的关系型数据库服务器。有时,我们可能需要完全卸载MySQL服务器,包括所有配置文件和数据,以便重新安装或切换到其他数据库服务器。本文将详细介绍在Ubuntu中如何完全卸载MySQL服......
  • Ubuntu 22.04.1 LTS 安装 MinIO
    1. 创建数据目录#数据存储目录mkdir-p/mnt/c/aipc/minio#日志存储目录cd/mnt/c/aipc/miniomkdir-plogsconfdatachmod-R777/mnt/c/aipc/minio2.安装wgethttps://dl.min.io/server/minio/release/linux-amd64/minio#将下载所得minio文件拷贝到指定文件夹......
  • ubuntu 安装mysql+redis+nginx
    1.mysql安装vim/etc/apt/sources.list 追加一下内容debhttps://mirrors.aliyun.com/ubuntu/focalmainrestricteduniversemultiversedeb-srchttps://mirrors.aliyun.com/ubuntu/focalmainrestricteduniversemultiversedebhttps://mirrors.aliyun.com/ubuntu/......
  • Ubuntu网页打不开,或只能打开一部分
    设置固定IP后,网关没设置或没设置对导致的。查看连接的网络的网关,用已经连了该网络的windows系统电脑,cmd里输入ipconfig 将Ubuntu的该网络的网关设置下,重新开闭下就可以了。桌面右上角——wifi设置——已连接的wifi后边的设置(下图) 断开再连接下 ......
  • 解决Ubuntu的Anaconda中的ssl_verify报错问题
    一、问题运行Anaconda时,遇到了下面的报错:CustomValidationError:Parameterssl_verify='/home/omnisky/anaconda3/ssl/cacert.pem'declaredin<<merged>>isinvalid.ssl_verifyvalue'/home/omnisky/anaconda3/ssl/cacert.pem'mustbeaboole......
  • openssh升级
    测试中标麒麟7.6中标麒麟6.5centos6.10centos7.61、配置telnet为防止openssh升级失败。所以安装telnet。保证openssh升级失败也可以通过telnet连接服务器,进行恢复操作。并不用去机房yuminstall-ytelnet-serverxinetdsystemctlstarttelnet.socket#启动telnet.sock......