返回

MSYS2安装git并配置ssh

MSYS2安装git和配置ssh

[TOC]

安装git和配置ssh

使用 msys2 意味着需要删除 git bash, 原因是 git for windows 是基于 msys2 的, 两者都装容易冲突。 安装 msys2 后可以用包管理工具 pacman 安装 git.

安装git

建议直接使用msys2提供的git兼容性更好.

1
pacman -S git

从别的博主的博文学来一个git实用(装Bility)工具onefetch( https://github.com/o2sh/onefetch

它将直接在终端中展示本地 Git 仓库的项目详情和代码统计等内容。工具完全离线可用(不需要网络连接)

1
pacman -S mingw-w64-ucrt-x86_64-onefetch

查看git版本

1
git version

安装成功

使用ssh配置git仓库链接

SSH安装

win10后面的版本基本上自带了openssh.

如若没有,可以直接在系统可选功能中找到并下载image-20240603211733940

image-20240602200720304

image-20240602200731141

image-20240602213631258

安装即可

查看SSH位置

可以直接在msys2 中随意挑选一个环境进入(如UCRT64)里使用ssh 这个命令, 如果你用which 查一下,就能发现ssh.exe它的位置是:

1
2
$ which ssh
/c/Windows/System32/OpenSSH/ssh

也就是 C:\Windows\System32\OpenSSH\ssh.exe

查阅相关资料发现,若是前面我们通过pacman安装git时会默认安装依赖openssh, 因此,openssh的ssh客户端会有比windows自带的优先级更高.

此时再查找会发现在usr目录下了,根据Msys官网,这就是usr就是msys的目录,其他环境比如ucrt64可以调用它的。

1
2
$ which ssh
/usr/bin/ssh

打开命令提示符或 Powershell,执行以下命令来检查 OpenSSH 客户端是否已经正确安装:

1
ssh

image-20240616120335891

查看版本

1
ssh -V

如果返回的版本号显示SSH已成功安装,则表示一切正常。您现在可以在Windows系统上使用SSH进行远程连接和管理。

此时ssh已经安装完毕了,可以配置密钥来连接了

创建 SSH 个人配置文件

主要是需要找到.ssh文件夹,没找到就新建

查看是否已经有密钥

输入 ls -al ~/.ssh 以查看是否存在现有的 SSH 密钥,没有自然要新建了。

有两个主要的SSH配置文件:用户级别的~/.ssh/config和系统级别的/etc/ssh/ssh_config。了解并正确配置这两个文件可以大大提高SSH连接的速度和可靠性。当您安装 SSH 时,您将自动创建一个 ~/.ssh 目录。这直接包含你的公钥、私钥一个known_hosts文件。您的配置也存储在这里。在 Ubuntu 上,默认情况下不会创建 SSH 配置文件。

~/.ssh~/.ssh/config 很重要,几乎所有ssh相关的操作都相关。

用户级别的配置文件:~/.ssh/config 这个文件通常位于用户的主目录下,是专为单个用户优化的SSH配置。你可以在其中为特定的主机或主机组设置连接参数,如端口号、用户名、密码等。

1
2
3
4
5
6
7
Host 			别名
HostName	 	主机名
Port 			端口
User 			用户名
IdentityFile 	密钥文件的路径
IdentitiesOnly 	只接受SSH key 登录
PreferredAuthentications 强制使用Public Key验证

例如:

1
2
3
4
Host myserver
HostName mydomain.com
User username
Port 2222

在这个例子中,我们为名为myserver的主机设置了特定的用户名和端口号。当你通过SSH连接到myserver时,它将使用这些特定的参数进行连接。

在msys中,我找了很久都没有找到这个隐藏文件夹.ssh,就连在用ssh配置github生成密钥的时候,也没有直接建立出.ssh。查了好久,最后自己创建了.ssh文件夹,将密钥文件放进去了。

然后config也没有,也是自己新建然后查阅后配置了密钥

最后我是放在了C:\msys64\home\Alvarez\ssh中的

​ 如果文件 ~/.ssh/config 不存在,您可以继续创建它。通常,此文件存在于 .ssh“隐藏”目录中,隐藏只是因为大多数操作系统不显示以 . 开头的目录。此外,该目录通常位于一个人的主目录或运行 ssh 的用户的主目录中,因此 ~ 符号表示主目录。

配置 SSH 秘钥

验证配置连接

测试配置是否成功

1
ssh -T git@github.com

如果看到如下结果,则证明配置成功,否则需要根据错误消息进行修改。

Hi yourusername! You’ve successfully authenticated, but GitHub does not provide shell access.

参考

ssh agent详解

为什么 ssh-agent 需要使用 eval 来运行

通过 ssh config 配置 Git 多账户 SSH 登录

附录

参考文献

版权信息

本文原载于[Alvarez’s Blog](Alvarez’s Blog (akihi878.github.io)),遵循CC BY-NC-SA 4.0协议,复制请保留原文出处。

Licensed under CC BY-NC-SA 4.0
本博客已稳定运行
⛄发表了4篇文章 · ✍总计0.99k字
使用 Hugo 构建
主题 StackJimmy 设计