下一个: Password authentication security, 上一个: Password authentication server, 上层: Password authenticated
为了通过口令验证服务器远程在仓库上运行 cvs命令,需要指定 pserver
协议,可选的用户名,仓库主机,可选的端口号,仓库路径。
例如:
cvs -d :pserver:faun.example.org:/usr/local/cvsroot checkout someproj
或
CVSROOT=:pserver:bach@faun.example.org:2401/usr/local/cvsroot cvs checkout someproj
然而,除非你连接到公共访问仓库(比如,不需要口令的用户名),首先要提供用口令或登录 log in。
登录用仓库校验你的口令并将它保存起来。
这是通过 login
命令完成,如果在 $CVSROOT 没有提供口令,它将交互提示你输入:
cvs -d :pserver:bach@faun.example.org:/usr/local/cvsroot login CVS password:
或
cvs -d :pserver:bach:p4ss30rd@faun.example.org:/usr/local/cvsroot login
输入口令后,cvs 用服务器进行验证。
如果认证成功,username、host、repository 和 password 的组合被永久纪录下来,这样以后与仓库的事务就不再要求执行 cvs login
命令。
(如果认证失败,cvs 申诉口令错误,并不纪录任何信息。)
按照默认,记录存储在 $HOME/.cvspass 文件中。 它的格式是人可读的,一定程度上是人可编辑的,但注意,口令不是以明文存储的—通常经过了编码来保护它们避免被无心发现的危险(例如,被碰巧看到这个文件的系统管理员或其他人无心地看到)。
你可以用设置 CVS_PASSFILE
环境变量改变来改变该文件的默认位置。
如果使用这个变量,请确保在 cvs login
之前将其设置。
如在运行 cvs login
后将其设置,以后的 cvs 命令将无法找到口令传输给服务器。
一旦登录之后,所有的 cvs 使用该远程仓库和用户名的命令都使用保存的口令认证。 这样,如
cvs -d :pserver:bach@faun.example.org:/usr/local/cvsroot checkout foo
将正常工作(除非服务器端更改了口令,那样你需要重新运行 cvs login
)。
注意,如果在仓库规格说明中没注明 `:pserver:',cvs 会采用 rsh
来连接服务器(参阅 Connecting via rsh)。
当然,如你已经有检出一个工作副本并在里面运行过 cvs 命令,以后将不再显式指明仓库,因为 cvs 可以从工作副本的 CVS 子目录推断仓库。