配置多个 ssh 登录

68 阅读1分钟

什么是ssh

SSH(远程连接工具)

连接原理:ssh服务是一个守护进程(demon),系统后台监听客户端的连接,ssh服务端的进程名为sshd,负责实时监听客户端的请求(IP 22端口),包括公共秘钥等交换等信息。

ssh服务端由2部分组成: openssh(提供ssh服务) openssl(提供加密的程序)

Client端如何保证接受到的公钥就是目标Server端的?

  • 1.Client将自己的公钥存放在Server上,追加在文件authorized_keys中。
  • 2.Server端接收到Client的连接请求后,会在authorized_keys中匹配到Client的公钥pubKey,并生成随机数R,用Client的公钥对该随机数进行加密得到pubKey(R)
    ,然后将加密后信息发送给Client。
  • 3.Client端通过私钥进行解密得到随机数R,然后对随机数R和本次会话的SessionKey利用MD5生成摘要Digest1,发送给Server端。
  • 4.Server端会也会对R和SessionKey利用同样摘要算法生成Digest2。
  • 5.Server端会最后比较Digest1和Digest2是否相同,完成认证过程。

生成 ssh key

ssh-keygen -t ed25519 -C "giteeshhkey_01"

选项参数解释

  • -C comment Provides a new comment.

  • -t dsa | ecdsa | ecdsa-sk | ed25519 | ed25519-sk | rsa

截屏2023-01-05 下午3.05.35.png

配置多账号

打开 config 文件, 并编辑

vi ~/.ssh/config

配置了 github 和 gitee 两个 host, 配置格式见下图

截屏2023-01-05 下午3.15.45.png ⚠️注意 IdentityFile 的路径

以 gitee为例 在网站中添加公钥

cat ~/.ssh/gitee/id_ed25519.pub

复制

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEg2fYrtDKg1qCR+/mGALiehTxZcAix46kFTAWAUMXT3 giteeshhkey_01

截屏2023-01-05 下午3.22.52.png

验证是否添加成功

ssh git@gitee.com

截屏2023-01-05 下午3.24.11.png