如何设置SSH代理帐号安全性,怎样不允许ssh帐号登录shell?增加一个linux用户,并赋予该用户一个nologin的shell权限。 一个ssh连接,在sshd(openssh)下,要开两个进程,大概好几m的内存。
/sbin/nologin添加失败,问题出在哪里? 如果你要建立一个脚本,很方便的建立这种ssh帐号的话,也很简单。通过ssh终端root权限连接到vps后输入: 如更改已经存在的用户的shell:useradd username -s /sbin/nologin
设置该用户密码。passwd username
username 即时你要设定的用户名,可自行修改。
问题在/etc/shells,这个文件中,有时候并没有添加/sbin/nologin。所以即便你给一个帐号赋予/sbin/nologin,也不能生效。
解决的办法,就是在/etc/shells添加一行/sbin/nologin,然后再添加帐号即可。命令如下:
cat >> /etc/shells << END
username就是要你要添加的用户名,password就是要设置的密码。
/sbin/nologin
END
useradd username -s /sbin/nologin
echo username:password | chpasswd
chpasswd 是linux下的一个批量修改帐号密码的命令。| 符号是管道符号。
第二句的意思就是,将echo username:password输出的内容通过管道 | 传递给chpasswd命令执行。
vim ssh.sh
#编辑一个sh文件
打开后,按 i 键进入编辑模式。
然后将下面内容复制进去(终端内点下鼠标右键即可复制)
#!/bin/bash
按 : ,输入wq(按:是接受指令,wq表示写入文件并退出编辑)
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脚本中约定的参数标志,分别表示第几个参数。
usermod -s /sbin/nologin ssh2
为SSH用户指定最小权限!保证系统安全!
添加用户:useradd -s /bin/false username,将用户的shell设置成/bin/false。这样用户就无法与系统进行交互。
设置密码:passwd username
设置完成之后查看下权限确认下
linux下用户,用户组和用户权限的查看
查看用户组最简单的办法是:
#cat /etc/passwd