今天从学校回家,以往在校园网内访问流畅的计组课程 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
仓库进行合作提供了极大的便利。