相信很多朋友跟我一样,在有些时候,因为一些特殊的问题,需要用到代理。至于VPN代理就不多说了,有经验的都知道,XEN的VPS搭建VPN比较容易,wget个PPTP一键安装包很顺利就搭建好了。但是OpenVZ就麻烦一点,可能要TK开通TUN/PPP,然后安装,可能还遇到一些莫名的问题。关于此类操作,可以见《CentOS下安装PPTP VPN小记》,记录了使用xen架构下安装PPTP VPN的步骤。

虽然我也偶尔用用VPN,但是个人认为,VPN有时候并不是完美的解决方案,比如你喜欢上QQ,开了VPN就要重新登录,一般还要输验证码,如果设置了登录验证,甚至还需要验证密保等,相信大多数人不喜欢这点,除此之外,还有些其他问题,比如浏览本地网站慢了,等等问题。所以,一般情况下VPN还不如SSH方便。而且,相对于VPN,SSH账号更加容易在VPS上添加,对于手上有VPS的朋友,想偶尔用下代理的话,您可以直接用root用户和密码连接。如果流量多用不完,想顺便提供SSH账号给朋友用,或者给网友用,也是很不错的想法哦,但总不能直接把root账号公开吧。所以下面就说一下该如何在linux主机(VPS)上添加这样的低权限账号。

首先说linux下怎样显示所有用户名的命令

awk -F: '{print $1}' /etc/passwd

1,增加一个linux用户,并赋予该用户一个nologin的shell权限。

useradd -M -s /sbin/nologin -N username (username自行修改为要设置的用户名)

#这一行是添加一个最低权限的用户

2,设置该用户密码。

passwd username

#这一行是设定该用户密码
下面,输入2次密码,就OK了,一个仅有代理权限的SSH账号就完成了。

3,删除账号。

userdel -r username

4,如果需要经常建立这种账户的话,可以建立一个脚本方便自己的操作。
通过ssh终端root权限连接到vps后输入:
vi ssh.sh
编辑一个sh文件
打开后,按 i 键进入编辑模式。
然后将下面内容粘贴进去(终端内点下鼠标右键即可粘贴)

#!/bin/bash
cat >> /etc/shells < < END
/sbin/nologin
END
useradd $1 -s /sbin/nologin
echo $1:$2 | chpasswd

然后保存退出编辑模式。

这样,输入下面命令就可以方便建立ssh代理帐号:
bash ssh.sh username password
username和password就是你自己要设置的帐号和对应的密码,可以替换。
上面脚本中$1,就是对应的username,$2,就是对应的password
$0哪里去了?ssh.sh即是也。
$1,$2,$0,是bash脚本中约定的参数标志,分别表示第几个参数。

更多的操作也可以:
useradd -M -s /sbin/nologin -N username //说明,username表示开通的ssh账号
userdel -r 用户名 //删除用户
passwd 用户名 //修改用户密码

操作演练:
首先以root身份登录vps
[root@poorren]# useradd -M -s /sbin/nologin -N freessh
[root@poorren]# passwd freessh
Changing password for user freessh
New UNIX password:freessh (实际操作中,这里的密码是不会显示的)
Retype new UNIX password:freessh (实际操作中,这里的密码是不会显示的)
passwd: all authenication tokens updated successfully.(此行出现就成功了)