拿到腾讯云的虚拟机,默认的用户为root,默认为SSH密码登录。本文将讲解使用Ansible初始化虚拟机的整个过程。
准备工作
在通过Ansible自动化初始化之前,需要手动做以下事情:
- 重新设置SSH端口(黑客们成天都在扫描你的22端口)
- 创建自己的用户(用于平时登录和Ansible)
- 设置SSH免密登录(为了方便)
- 禁用SSH密码登录 (为了安全)
- 禁止root用户登录 (为了安全)
重新设置SSH端口
找到/etc/ssh/sshd_config
文件,先备份:
cp sshd_config sshd_config.origin
然后修改sshd_config
文件:
#Port 22
Port 22222
重启SSH服务:
systemctl restart sshd
退出后重新登录:
ssh root@虚拟机IP -p 22222
创建自己的用户
创建用户myuser,并设置用户在wheel组,wheel组下的用户拥有sudo权限。
首先将wheel组加入免密sudo权限中(有些Linux下wheel已经在sudo免密权限中了,腾讯云的centos默认配置是wheel需要密码才能sudo),修改/etc/sudoer
文件:
cp sudoers sudoers.origin # 备份原文件
visudo #编辑sudoers文件专用命令
注释掉:
#%wheel ALL=(ALL) ALL
启用:
%wheel ALL=(ALL) NOPASSWD: ALL
然后创建名为myuser的用户:
useradd -d /home/myuser -m myuser -g wheel
配置SSH公钥文件用于免密SSH登录:
su myuser #切换到myuser用户
cd #切换到myuser用户的主目录(/home/myuser)
mkdir .ssh
chmod 700 .ssh #很重要,SSH对权限很敏感,设置不正确可能导致无法登录
cd .ssh
touch authorized_keys #很重要,SSH对权限很敏感
chmod 600 authorized_keys
然后将myuser用户的公钥文件的内容拷贝到authorized_keys,如果还没有SSH密钥对,请参考这里。
设置SSH免密登录
此时的myuser用户依然无法SSH免密登录,因为我们还没有对SSH服务器进行设置,修改/etc/ssh/sshd_config
:
PubkeyAuthentication yes
重启SSH:
systemctl restart sshd
登出虚拟机后,便可以用myuser用户免密登录了(默认myuser的私钥为.ssh/id_rsa
):
ssh myuser@虚拟机IP
禁用SSH密码登录
请保证myuser用户可以免密SSH登录了之后才禁用密码登录,不然root用户也登录不了了。
修改/etc/ssh/sshd_config
:
PasswordAuthentication no
禁止root用户登录
修改/etc/ssh/sshd_config
:
PermitRootLogin no
重新启动sshd:
systemctl restart sshd
网友评论