现在我们希望通过自动化程序,最好 python,但也可以用 shell,来实现创建 VPS,这一步一句完成了,同时配置 VPS 以及安装内容。
需要修改:
/etc/ssh/sshd_config
所以基本上第一步就是需要允许 root 登陆比较方便些。可是这样的非 sudoers 的 Debian 用户设置,如何操作呢?一个一个输入密码肯定不好,有没有办法自动输入密码的?
1
DravenJohnson OP TL;DR 主要就是想通过先用的情况下的一个 VPS,在这上面配置一些东西,包括安装软件,修改密码,修改 ssh 等等。
|
2
zhs227 2017-05-05 06:08:39 +08:00
没用过 debian,其它几种 linux 的话,都是把用户添加到一个特定的用户组就可以了。ubuntu 是添加到 sudo 组,centOS 是添加到 wheel 组。
网上流传各种修改 /etc/sudoers 的方式,不太推荐。 还是建议通过普通帐号用 sudo,sudo 可以自己找包装上去。 |
3
ryd994 2017-05-05 08:01:29 +08:00
写好脚本
su -c 只要输一次密码 总之你至少得输一次吧 |
4
ivmm 2017-05-05 08:03:22 +08:00
apt-get install sudo ???
|
5
imn1 2017-05-05 08:16:27 +08:00
su
vi /etc/sudoers 自己加进去就是了 其实人家就是为了安全,就算别人“误”登入,不知道 root 密码也不能做太多 |
6
lekai63 2017-05-05 08:35:28 +08:00 via iPhone
没人提 发 ticket 么?
与其费脑子跟程序死磕,不如试试与人交流套套近乎。说不得就能勾搭上人家 boss 给你免了服务器的费用 23333 |
7
yushiro 2017-05-05 08:45:29 +08:00 via iPhone
安装 sudo 之后,把当前用户加入 sudo 组,就可以用 sudo 了,不需要手动配置 sudoers
|
8
xiaket 2017-05-05 09:02:03 +08:00
不建议直接改 /etc/sudoers, 建议将合适的配置文件放进 /etc/sudoers.d/目录.
|
9
LokiSharp 2017-05-05 09:14:09 +08:00
su root
gpasswd -a USER_NAME wheel 不要修改 sudoers 不安全 |
10
choury 2017-05-05 09:15:44 +08:00 via Android
把 debian 加到 sudo 组里面就行了
|
11
DravenJohnson OP @lekai63 发了 Tickets 了,不过这个云服务商什么都没有,不报希望可以解决
@zhs227 @ryd994 @ivmm @imn1 @yushiro @xiaket @LokiSharp @choury 同一回复一下吧,现在的问题就是不管怎么样都需要输入一次密码: 不管是安装 用任何 apt-get install sudo 安装 sudo ;或者是很多人说的一样,加到 sudo 组;还是说的 su root 都无法避免输入一次密码。我们现在是想要通过一个 python 或者 shell 自动化这个步骤。当然如果谁能说出来把密码加在 shell scipt 里面的办法也是可以的。 原因很简单,我们第一次需要 provisioning 500 个 VPS。以后每天需要删除 + 创建不少于 50 个 VPS,如果这个简单步骤无法自动化的话,那么基本来说就无法使用了。 |
12
choury 2017-05-05 09:38:20 +08:00 via Android
@DravenJohnson 搜索 sudo 免密码
|
13
ysicing 2017-05-05 09:38:25 +08:00
好奇哪家的 VPS
|
14
yinflying 2017-05-05 09:49:15 +08:00
为了安全,我也把自己的 vps 改成这个样子,root 禁用登陆,使用普通用户登陆,并且没有 sudo 权限。
楼上的方法都可以,不过个人还是支持直接加到 wheel 组比较好。 |
15
lazycat 2017-05-05 09:50:41 +08:00 via Android
试试 expect ?
|
16
imn1 2017-05-05 09:50:44 +08:00
|
17
LokiSharp 2017-05-05 09:52:24 +08:00
@DravenJohnson 既然你是 500 VPS 的大用户,你有权力发 Tickets 要求服务提供商为你修改配置脚本。
嘛,一般来说服务商都会提供 API 文档让你开发自动部署脚本比如说腾讯云和阿里云的修改密码 API https://www.qcloud.com/document/api/213/1245 https://help.aliyun.com/document_detail/25503.html?spm=5176.doc25485.6.835.jWnaII 如果连 API 文档都没有的话。。。建议换一家服务商 |
18
CRVV 2017-05-05 09:59:22 +08:00 via Android
man sudoers
搜索 password 另外,改配置要用 visudo |
19
ryd994 2017-05-05 10:05:42 +08:00
你们都想复杂了:
echo password | su -c script.sh 还有,这样的大客户,要求 provision 的时候带公钥真不难。大点的云服务商,比如 AWS,DO,包括 Vultr 都是可以的。 不能注入公钥的服务商,窃以为技术水平不行,不值得用。 |
20
fuxkcsdn 2017-05-05 10:12:45 +08:00
|
21
DravenJohnson OP |
22
fuxkcsdn 2017-05-05 11:31:29 +08:00
看看 vps 是否默认有安装 expect
或者尝试下 apt-get install expect 看需不需要密码,如果不需要的话,那一切就好办,需要的话就真无解了 |
23
ryd994 2017-05-05 11:41:44 +08:00
|
24
araraloren 2017-05-05 12:38:11 +08:00
这种自动化交互,我第一时间想到的就是
expect |
25
7654 2017-05-05 12:46:19 +08:00
这么大的量,为什么不定制 VPS 模版镜像呢
|
26
Osk 2017-05-05 13:03:06 +08:00 via Android
LANG=C expect -c 'spawn su -c /script; expect "Password:"; send "yourpass\n"; interact'
|
27
Showfom 2017-05-05 13:22:23 +08:00
su -i
输入密码 然后就变成 root 了 再 apt-get install sudo |
28
Showfom 2017-05-05 13:26:31 +08:00
@Showfom 说错了,直接 su 这个命令就行
楼上的朋友们是多久没用 iso 装 Debian 8 了 老早以前他默认就不带 sudo 了,都得自己装,服务商的话得看自己的模板优化,比如 Google Cloud 还有 Linode 这些都是会给你装好的,要是傻乎乎的什么都没有装那自然就没了 楼主的情况应该是,你用 ssh key 登陆,但是没有给你 debian 默认用户的密码,所以你可以去控制面板找找有没有给你 debian 默认用户的密码,没有的话就去怼客服吧,要他们改模板去。 |
29
Showfom 2017-05-05 13:27:27 +08:00 1
或者还有一种迂回的方案,要是控制台里你可以找到 root 密码,那么用 console 进去,然后 root 登陆安装下 sudo 呗
|
30
LokiSharp 2017-05-05 13:38:25 +08:00
@Showfom #29 问题是他有 500 台机器要配置。
目测他的 vps 没有装 expect,在没有 expect 的情况下 如何配置能自动输密码的自动化脚本 |
32
v2exchen 2017-05-05 13:52:33 +08:00
用 python ssh 登录,模拟人机交互。https://my.oschina.net/u/142602/blog/191822
|
33
realpg 2017-05-05 17:03:28 +08:00
redhat 工程师配出来的 debian/ubuntu 就这样……
|
34
sylecn 2017-05-06 18:26:42 +08:00 via Android
装好 sudo 之后,可以配置某个(些)用户免密码使用 sudo。不在电脑前,不记得具体的格式了。在配置时要加一个 NOPASS 之类的参数。
|
35
DravenJohnson OP @Showfom 这个服务商非常高傲,基本来说不管。主要 VPS 也是他们的副业可能。
|
36
DravenJohnson OP |