论如何优雅地配置一台云服务器
牛客网联合华为云搞了个大新闻,搞出了9块钱一年的学生机。配置跟国内各大云服务商的学生机持平,1核1G内存+40G系统盘+1M带宽,跑点常见的服务毫无压力。此外,这个学生机还支持ipv6,这也是相当让我惊喜的一点——随着现在三家运营商ipv6建设的全面铺开,再加上高校教育网原本就对ipv6支持的比较完善,拥有一个v6地址在很多时候可以发挥出意想不到的效果。
当然,服务器买来刚初始化完之后,里面空空如也,并且有很多默认设置实际上并不顺手。这篇文章就是用来记录如何将这台机器搞得更顺手一点,“优雅”一点。
云服务器,几乎必然要上Linux了。(什么?你想上Windows?)Ubuntu是我用的比较顺手的一个系统,华为云默认提供了Ubuntu1604和Ubuntu1804两种镜像,那我肯定要选新一点的1804啦。不过这个选择还给我稍稍带来了一点麻烦,这个我们一会说。
华为云的主机默认是采用密码登录的,用户一上来就给的是root。这样固然方便,但是用密码登录显然不如用ssh key安全和优雅,那么第一步就让我们先来搞搞它。
登陆上服务器之后,在terminal里输入
ssh-keygen
之后有几个可选的配置,直接敲回车采用默认设置即可。然后运行结果就会是这个样子的:
root@ecs-sn3-medium-2-linux-20200224112405:~# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:eklTx2jLBz8AyrPw/KI52HPso9bKBbKZe4ZPPDmtJjw root@ecs-sn3-medium-2-linux-20200224112405
The key's randomart image is:
+---[RSA 2048]----+
| . |
| . . . o |
| . + * o |
| + o + * |
| . . + S o + |
| * + + o . . |
| .++*o= + |
| E+OB=o |
| .OOB.. |
+----[SHA256]-----+
然后我们按图索骥,进入到/root/.ssh/
这个目录里。正常情况下,如果你是第一次生成ssh key,这里会有三个文件:id_rsa
,id_rsa.pub
和authorized_keys
三个文件。其中,第一个是私钥,相当于你的密码,保管好别随便给别人;第二个是公钥,这个是用来告诉别人你的私钥应该长什么样子的;第三个文件中,保存着所有能登录到这台服务器的公钥,现在它还是空着的。
那么下一步,我们在命令行里执行:
cat id_rsa.pub > authorized_keys
这行指令是将id_rsa.pub
里的内容追加到authorized_keys
里的。然后,重启一下sshd
服务:
systemctl reload sshd
然后将私钥保存到本地,这时我们就可以通过私钥登录服务器啦。
这时,我们虽然能通过ssh key登录,但是由于原来的密码登录方式还没有禁用掉,不够安全,下一步需要将密码登录禁用掉。
在terminal里输入:
vi /etc/ssh/sshd_config
打开sshd的配置文件,跳转到第56行,有一行
# PasswordAuthentication yes
将前面的#
号去掉,并将yes
改成no
,保存,按照上面的方法再重新加载一次sshd服务:
systemctl reload sshd
这样就可以了。
2. 安装zsh和oh-my-zsh
ubuntu默认的shell是bash,也是应用最广泛的一种shell——什么,你不知道这是什么?去查查吧,基础中的基础啊——当然功能是够用的,但是不够优雅。zsh是另一种shell,它功能强大,但是由于配置晦涩难懂,也十分复杂,最初使用的并不广泛。而oh-my-zsh提供了一系列很好用的配置,有了它,zsh迅速地变成了老少咸宜且十分流行的shell。
Talk is cheap, 开始正题。
第一步,先安装zsh。我们可以使用自带的apt软件包管理器简单地完成这项工作。
apt install zsh
然后直接敲两下回车即可。
第二步,安装oh-my-zsh。在终端里执行
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
提示:考虑到某股神秘力量的存在,你可能会因为网络问题在这一步失败很多次。你有两种选择,一是不停重试——反正我这样成功过;第二是去找一点正确上网的姿势,我胆小,就不赘述了,自己去搜吧。
安装完之后,它会提示你要不要把默认的shell切换成zsh,那必须的啊,回车之。
稍等片刻,你会发现提示符的样子已经变了:
➜ ssh
恭喜你!安装成功了。zsh的魅力在于主题和插件的使用,教程网上有很多,这里(因为懒)也不赘述了,去网上一搜一大把。
3. 开一个新用户
因为默认用户是root
,有着系统的最高权限,而我们平常根本不需要这么高的权限,有需要的时候直接sudo
就可以了。于是,创建一个日常使用的用户就显得十分重要。
在终端里执行
adduser paul
其中paul
是你想创建新用户的用户名。回车之,提示你输密码
Enter new UNIX password:
输入新用户的密码,敲回车,然后会要求你再输入一次防止输错。然后就是一些个人信息的填写,都可以直接敲回车略过。所有信息输入完之后,会提示:
Is the information correct? [Y/n]
输入y,回车,一个新的用户就创建好了。然后你就可以使用这个新用户登陆服务器了。需要注意的是,ssh key是和用户对应的,而我们第一步配置的ssh key显然是给root
这个用户配置的,因此对于我们创建的新用户,还需要重新配置一遍。如果你不想再搞一个新的ssh key出来,也可以将第一步中产生的id_rsa.pub
里的内容填到/home/新用户名/.ssh/authorized_keys
中,这样就可以直接用原来的ssh key登录了。
4. 开启ipv6
华为云的ipv6显然还处于试用阶段,权限没有默认开通,需要我们申请一下。
登陆这个网站:https://www.huaweicloud.com/solution/ipv6/,选择"IPv6-EIP立即申请",别选错了哦,选成另一个是不行的。然后它会让我们填一些信息,看着很高大上,其实瞎填就可以了。提交之后它提示要审核,但其实也不用等,实测这个审核几分钟就通过了。
权限申请到之后,下一步就是配置网络了。登录华为云控制台,选择“虚拟私有云”,
然后点击右上角的“创建虚拟私有云”,在新的页面里将下方的“开启ipv6”选上,点“立即创建”,就可以了。
然后我们还需要将服务器绑定的VPC更换成新创建的。在控制台中选择“弹性云服务器”,在“更多”中选择“切换VPC”,虚拟私有云切换成我们刚刚新创建的,确定即可。
UPDATED: 写到这里,我去查了一下文档,突然意识到——这上面是IPv6双栈的配置方式!哦...(手动捂脸
对于IPv6-EIP,不需要如此繁琐的配置,只需要打开控制台中的“弹性公网IP”,在属于我们的那个IP那一栏,选择右侧的“更多”下拉菜单,”打开IPv6转换“,然后再去”访问控制“->”安全组“中,选择我们使用的那个安全组(一般为Sys-default
)的”配置规则“,在入方向规则中,选”添加规则“,协议端口写”全部放通“,源地址填”192.19.0.0/16“,确定即可。此时,我们已经可以通过IPv6地址访问服务器了。
一点吐槽
事实上,我在尝试开启IPv6的过程远比文章中艰辛。首先,在申请公测权限的时候,并没有明显地提示我应该选择IPv6-EIP或IPv6-双栈,导致我最初想当然地先申请了后者,再申请了前者...
此外,关于这个双栈的问题,按照教程来看我应该先将弹性IP绑定到共享带宽,这样VPC才能为服务器提供IPv6的访问权限;但是我未绑定,仍然为我的VPC分配了一个IPv6的网段。后来,IPv6-EIP的方法能够使用之后,服务器一直分配不到IPv6地址,但是入站使用v6没有问题;于是我又去搜索文档,发现了这么一篇:http://support.huaweicloud.com/usermanual-ecs/zh-cn_topic_0140963099.html,然而这篇问题更大,不仅没有明显的提示不适用于IPv6-EIP,在下文中ubuntu1804手动获取地址的部分直接写错了:教程里教的是在/etc/network/interface
进行修改,然而华为云默认的ubuntu1804镜像使用的是netplan
管理网络!
后来还遇到了不少坎坷,提了工单工程师也没法给我一个完美的答复,并且在工单中当工程师想要访问我的主机时,有一个提供权限的操作——就是将密码填入一个指定页面。然而不知为何,我填入正确的密码,这个页面验证一直不成功,工程师也说一直无法登录...
后记
- 点赞
- 收藏
- 关注作者
评论(0)