博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在dropbear的ssh服务器下开设最低权限的ssh帐号,用于SSH代理上网
阅读量:6242 次
发布时间:2019-06-22

本文共 1347 字,大约阅读时间需要 4 分钟。

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

网上的教程最关键的一般就是两步:
增加一个linux用户,并赋予该用户一个nologin的shell权限。

1
 
useradd username -s /sbin/nologin

设置该用户密码。

 

1
 
passwd username

username 即时你要设定的用户名,可自行修改。

一个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,然后再添加帐号即可。
命令如下:

1
2
3
4
5
 
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后输入:

1
 
vim ssh.sh

#编辑一个sh文件
打开后,按 i 键进入编辑模式。
然后将下面内容复制进去(终端内点下鼠标右键即可复制)

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

按 : ,输入wq(按:是接受指令,wq表示写入文件并退出编辑)
这样,输入下面命令就可以方便建立帐号:

1
 
bash ssh.sh username password

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

转载地址:http://bkpia.baihongyu.com/

你可能感兴趣的文章
myeclipse2013 安装 egit
查看>>
介绍几种常见的网站负载均衡技术
查看>>
httpd详解
查看>>
jquery获取复选框的值
查看>>
深入理解C语言的define
查看>>
安装Discuz
查看>>
zabbix问题集锦
查看>>
MYSQL EXPLAIN 中的KEY_LEN的说明
查看>>
Linux笔记(VIM)
查看>>
pyrhon脚本小练习(9*9乘法表)
查看>>
Python按行读取文件
查看>>
Linux Shell从一个文件去掉包含在另一个文件的内容
查看>>
Linux CentOS6.5下编译安装MySQL 5.6.16
查看>>
CentOS 7 上systemctl 的用法
查看>>
极验验证的滑动验证码破解
查看>>
【深入Linux块设备驱动层次之一】整体层次
查看>>
Linux登录安全及用户操作审计 ,linux下清理日志脚本
查看>>
一个JS文件中引入另一个JS文件
查看>>
Laravel中pluck的使用——返回指定的字段值信息列表
查看>>
TCP Segment Offload(TSO)的实现原理浅析
查看>>