今天从学校回家,以往在校园网内访问流畅的计组课程 Git 仓库不能流畅访问了。研究发现这是 host 配置出了问题。有两种解决方法
方法一 修改 ./ssh 文件夹下 config 文件
.ssh/config 文件是配置 ssh 连接相关参数的配置文件,示例配置如下:
Host hostA
HostName www.webname.com
Port 1234
User test
IdentityFile ~\.ssh\id_rsa
Host hostB
HostName 123.456.789.000
Port 5678
User root
IdentityFile ~\.ssh\id_rsa
使用方法:
使用 ssh hostA 可以连接到域名为 www.webname.com 所指向的服务器
使用 ssh hostB 可以连接到 ip 地址为 123.456.789.000 的服务器
如果想使用 scp 命令,以上面 hostA 为例,格式为: scp hostA:/xxx
config 配置含义
-
Host:服务器别名,只要是合法的变量名称且不重复即可,可任意指定,ssh命令通过该名称来连接到指定服务器,比如上面的ssh hostA / ssh hostB。 -
Hostname:服务器地址,可以是域名,也可以是ip地址。 -
Port:端口号,默认为22,只有修改了ssh连接的默认端口才需要配置此参数 -
User:ssh的登陆用户名
IdentityFile:ssh 私钥文件的地址(不带 .pub 后缀的文件)
方法二 修改系统的 hosts 文件配置
在 hosts 文件中增加映射关系:10.xx.xx.xx git.xx.com,以便可以使用相应的域名访问 git。同样的,增加 10.212.29.199 git.cscore.buaa.edu.cn,就可以访问校内的 git 仓库。
hosts 文件的位置通常位于 C:\Windows\System32\drivers\etc 目录下,用管理员权限打开后在 hosts 文件尾部添加以下内容:
10.xx.xx.204 git.xx.com
小结
方法一的配置
Host git.cscore.buaa.edu.cn
User 21371055
Hostname 10.212.29.199
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443
方法二的配置
10.212.29.199 git.cscore.buaa.edu.cn
这样我们就配置完成了,同时理解了 hosts 的工作原理。这里工作为跨越网络限制,在各个地方访问 Git 仓库进行合作提供了极大的便利。