第29章 使用SSH协议
SSH协议用于为Git提供远程读写操作,是远程写操作的标准服务,在智能HTTP协议出现之前,甚至是写操作的唯一标准服务。
29.1 SSH协议语法格式
对于拥有shell登录权限的用户账号,可以用下面的语法访问Git版本库:
语法1:ssh://[<username>@]<server>[:<port>]/path/to/repos/myrepo.git 语法2:[<username>@]<server>:/path/to/repos/myrepo.git
说明:
SSH协议地址格式可以使用两种不同的写法,第一种是使用ssh://开头的标准的SSH协议URL写法,另外一种是SCP格式的写法。
两种写法均可,SSH协议标准URL写法稍嫌复杂,但是对于非标准SSH端口(非22端口),可以通过URL给出端口号。
<username>是服务器<server>上的用户账号。
如果省略用户名,则默认使用当前登录用户名(配置和使用了主机别名的除外)。
<port>为SSH协议端口,默认为22。
因为只有语法1才能在URL中提供端口,因此如果使用非默认端口22,最好使用语法1。当然使用语法2也可以实现,但是要通过~/.ssh/config配置文件设置主机别名。
路径/path/to/repos/myrepo.git是服务器中版本库的绝对路径。若用相对路径则是相对于username用户的主目录而言的。
如果采用口令认证,不能像HTTPS协议那样可以在URL中同时给出登录名和口令,必须在每次连接时输入口令。
如果采用公钥认证,则无须输入口令。
