0. 关于BurstNET和JustHost

前几天购买了一个美国VPS,BurstNET最低价位的VPS,512M的内存,单核1000MHz的CPU,20G硬盘,1000G月流量。价格相当便宜,5.95美金一个月,正好我买的时候3月28号到31号提供20%折扣的优惠码,算下来相当于每个月30元人民币。比国内绝大多数的VPS价格都要便宜,而且服务有保证(因为国内很多VPS提供也就是一个reseller,其实是没有服务保障的)。服务器的位置是可选的,对这边来说最优的选择也就是洛杉矶了,在公司网通网络的ping是200多毫秒,家里的电信网络就有点不堪入目了,基本接近400毫秒。

OK,这个VPS价格上比我买的50%off的JustHost要贵上近1倍(JustHost月租金近17元人民币),速度上来说也稍微快一点(从ping上来看),但是VPS这边就拥有绝对的系统控制权,作为开发来说这真的是必不可少的。

1. VPS系统的账户和权限

刚才讲了那么多废话,这里简单介绍下VPS系统和管理的几个要点。软件安装说穿了其实是没什么东西可以记录的,以前也讲了很多了。这里主要讲下怎么做安全和账户划分。

关于账户密码,密码是必须要安全的,当然也没有想象中那么可怕。因为密码访问在后期是会被禁掉的,反正就那么几个人的小团队会来访问,把SSH2做好了就OK了。在SSH2做好之后,所有非root的用户的密码其实就可以删除了,因为管理和记忆有成本,而SSH2可以抹去密码的用处,这样在其他账户上保留着密码其实是一件很没意义的事并会造成潜在问题风险。在root用户的情况下使用passwd "target_user_name" -d就可以了。

  • root账户的.ssh文件夹下的authorized_keys文件里只放系统管理员的公钥,亦即只有系统管理员才能以root身份访问VPS。
  • 创建一个git用户,具体的步骤可以参考:我写的博客。这个用户只是用来维护git仓库的,所以我们通过编辑/etc/passwd文件,将该用户的最后一个字段改成/usr/bin/git-shell,这样这个用户就不能登陆系统了,只能通过SSH2来更新git。这个用户的authorized_keys里放上所有程序员的公钥,因为他们都需要访问git。
  • 创建一个prog用户,authorized_keys里放上服务器端开发人员的公钥。这个账户只能访问特定的文件夹,并只有部分权限,用来做服务器端程序员做部署等工作时候用。
  • 创建一个share用户,authorized_keys里放上所有团队人员的公钥。这个用户只能访问share文件夹,并只有部分权限,用来给团队成员做文件共享用。团队成员通过FTP软件,以SFTP方式使用私钥登陆服务器来进行文件共享。具体的操作根据不同的FTP软件而不尽相同。

OK了,简单来说就是上述的这几个账户。

2. 操作步骤

SSH2的使用步骤其实是很简单的,linux和mac的用户使用ssh-keygen来创建公钥和私钥,并将公钥交给系统管理员。而windows的用户则使用putty的软件来创建钥匙。然后系统管理员分门别类将各个人员的公钥导入到相对应账户的authorized_keys文件里。

在分配完所有的钥匙之后就可以执行下一步了,编辑ssh的配置/etc/ssh/sshd_config,将PasswordAuthentication选项设成no,这样使用密码登陆就被禁止了,只能通过SSH2的公钥来登陆。到这里账户设置就完成了。