Wednesday, February 20, 2013

vps开设最低权限的ssh帐号,用于上网代理

网上这类的教程很多,一搜很多,但是很少能成功用在dropbear这个ssh服务器下的。

网上的教程最关键的一般就是两步:

增加一个linux用户,并赋予该用户一个nologin的shell权限。useradd username -s /sbin/nologin设置该用户密码。passwd usernameusername 即时你要设定的用户名,可自行修改。


一个ssh连接,在sshd(openssh)下,要开两个进程,大概好几m的内存。

但在dropbear下,一个ssh连接只需要一个进程,内存占用大概600k。

而且根据个人感观,dropbear登录要快一点,很多嵌入设备也采用的是dropbear。

如果你是想开ssh帐号出售或者给朋友用,显然dropbear更节省内存,也更划算,因为同时连接的数量多,也不会占用太多内存而影响vps正常运行。


但如果vps上的ssh服务器不是sshd(openssh),而是dropbear的话,这样设置是不能成功的。

不信你去淘宝买ssh帐号,都是用openssh做的ssh服务器。


问题出在哪里?

问题在/etc/shells,这个文件中,有时候并没有添加/sbin/nologin。所以即便你给一个帐号赋予/sbin/nologin,也不能生效。

解决的办法,就是在/etc/shells添加一行/sbin/nologin,然后再添加帐号即可。
命令如下:

cat >> /etc/shells << END

/sbin/nologin

END

useradd username -s /sbin/nologin

echo username:password | chpasswd
username就是要你要添加的用户名,password就是要设置的密码。

chpasswd 是linux下的一个批量修改帐号密码的命令。| 符号是管道符号。

第二句的意思就是,将echo username:password输出的内容通过管道 | 传递给chpasswd命令执行。


如果你要建立一个脚本,很方便的建立这种ssh帐号的话,也很简单。通过ssh终端root权限连接到vps后输入:

vim .sh#编辑一个sh文件

打开后,按 i 键进入编辑模式。

然后将下面内容复制进去(终端内点下鼠标右键即可复制)

#!/bin/bash

cat >> /etc/shells << END

/sbin/nologin

END

useradd $1 -s /sbin/nologin

echo $1:$2 | chpasswd
按 : ,输入wq(按:是接受指令,wq表示写入文件并退出编辑)

这样,输入下面命令就可以方便建立ssh代理帐号:

bash ssh.sh username passwordusername和password就是你自己要设置的帐号和对应的密码,可以替换。

上面脚本中$1,就是对应的username,$2,就是对应的password

$0哪里去了?ssh.sh即是也。

$1,$2,$0,是bash脚本中约定的参数标志,分别表示第几个参数。

看到$符号了吗?要强力赚$,只需要多写脚本,多用参数,就可以赚到了。


原文:http://www.benmao.com/archives/1772








via 细节的力量 http://xijie.wordpress.com/2013/02/21/vps%e5%bc%80%e8%ae%be%e6%9c%80%e4%bd%8e%e6%9d%83%e9%99%90%e7%9a%84ssh%e5%b8%90%e5%8f%b7%ef%bc%8c%e7%94%a8%e4%ba%8e%e4%b8%8a%e7%bd%91%e4%bb%a3%e7%90%86/

No comments:

Post a Comment