首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

迈向全栈:如何初始化一台云服务器

  • 25-04-17 09:01
  • 2058
  • 10965
juejin.cn

作为一个前端,都会有一个写后端接口的野望,我也不例外。

因此,你首先就是要买一台服务器,买了服务器之后需要做一个配置。本文就是我初始化我的服务器的一个过程,希望对你有帮助。

root 登录

当你购买了一台服务器后,会有一个root账号,并让你设置初始密码。

当你设置后之后,就可以通过命令行工具远程进行登录了:

js
代码解读
复制代码
ssh root@111.11.11.111 // 输入密码 root@111.11.11.111's password:

为什么使用 root 登录是一个不好的实践

  • 有非常多的 bot 会尝试使用 root + pwd 的 ssh 方式暴力登录机器,当尝试成功以后,黑客就会控制整个系统。
  • 假如使用特定用户名 + pwd,bot 需要先猜测用户名(N 次),然后是密码(M 次),这样复杂度提升到 N * M。
  • root 可以造成更大的危害,影响整个系统,而某个特定用户只能影响它的文件系统。

创建一个账号进行登录

1、首先使用root账号进行登录

2、然后添加用户,并设置密码

js
代码解读
复制代码
// 设置用户名 因为主要是web页面,取名叫weber adduser weber // 设置新用户密码 passwd weber

有的系统在你adduser weber执行时,就会让你设置密码,有的系统不会,需要你通过passwd weber进行设置。

设置该用户拥有 sudo 权限,给予它在登录以后切换到 root 的能力

首先找到/etc/sudoers,表示所有可以sudo的用户列表。

首次登录服务器,是不可以修改/etc/sudoers的。

image.png

通过下面操作,让root用户可以对这个文件进行写这个操作。

bash
代码解读
复制代码
# 修改权限,u 表示所有者(通常是 `root`),w 表示写权限 + 表示添加 chmod u+w /etc/sudoers

image.png

bash
代码解读
复制代码
# 编辑文件 vim /etc/sudoers # 找到 `root ALL=(ALL) ALL` # 再加一行 `weber ALL=(ALL) ALL`

image.png

修改完成后,建议撤销写入权限以增强安全性:

bash
代码解读
复制代码
chmod u-w /etc/sudoers

测试新用户登录,以及是否有对应的root权限

1、登录

js
代码解读
复制代码
ssh weber@11.11.11.111

登录成功后,可以使用whoami来查看登录用户。

image.png

创建一个新用户后,都会在home下创建一个用户名的文件夹weber。

image.png

2、如何拥有root权限

有两种方式:

  • 可以使用 su 直接切换为 root 用户

image.png

可见已经由weber用户切换到root用户了,如果想切换回去,只需要输入exit。

  • 也可以使用 sudo 快捷的使用 root 权限进行操作
js
代码解读
复制代码
sudo 命令

前面加上sudo后执行之前,需要输入密码。

禁止使用 root 远程登录 ssh

前面创建新用户的目的,就是为了不使用root进行登录。

首先,还是使用root账号进行登录,执行如下操作

bash
代码解读
复制代码
# 修改 ssh 配置 vim /etc/ssh/sshd_config # 修改 yes 为 no PermitRootLogin no # 重启 sshd 服务 service sshd restart # 检测sshd服务是否重启 service sshd status

image.png

修改 yes 为 no 即可。

这样只有weber账号能登录了,从而保障了服务器的安全。

可选:不使用密码登录

为什么使用密码登录有时候是一个不好的实践?

非常简单:用户经常使用非常简单的密码,全球最常用的密码是 123456 以及 abc123,而且用户会在多个账户大量重复使用,所以黑客从别的地方盗取的密码很可能在其他账户也可以使用。

推荐:使用 SSH key 进行登录

SSH key 采用了经典的非对称加密技术,可以使用工具创建一个公钥和私钥,你可以将公钥放置在任何的服务器当中,在本地保留私钥。

比如,在gittee中,我们如果要通过ssh方式进行git clone,那么需要在本地创建一个公钥和私钥,把公钥存放在gittee中。

image.png

在 ssh 登录的时候,SSH 验证公钥和私钥的合法性,当合法的时候,就可以免密码登录了。证书由 1024 Bits 到 4096 Bits(128 到 512 字符)的随机字符组成,要比你自己的密码安全的多。

首先进入到 .ssh文件下,查看是否有ssh的公钥和私钥。

image.png

没有话,通过如下方式创建:

bash
代码解读
复制代码
# 创建 ssh key pair ssh-keygen -t rsa -b 4096 -C "[email protected]" # windows 可以使用 putty 或者 git scm软件生成,备注网址: # https://www.jianshu.com/p/95262f5eba7a # 本地 ssh 证书的位置 ~/.ssh/id_rsa ~/.ssh/id_rsa.pub # 登录远程机器 ssh [email protected] # 创建.ssh文件夹 mkdir .ssh # 这个文件当中的公钥会被当前的主机设置为信任方 touch ~/.ssh/authorized_keys # 将 id_rsa.pub 的文本内容黏贴进来 # 设置文件权限 chmod -R 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys

经过上面设置后,此时就可以免密登录了。

chmod -R 700 ~/.ssh 递归设置 ~/.ssh 目录及其所有子目录和文件的权限为 700。

  1. 700 表示:
  • 7(所有者) :读(4) + 写(2) + 执行(1)权限(即 rwx)。
  • 0(组和其他用户) :无任何权限(---)。
  • -R:递归操作(对目录内的所有子目录和文件生效)。
  1. 600 表示:
  • 6(所有者) :读(4) + 写(2)权限(即 rw-)。
  • 0(组和其他用户) :无任何权限(---)。

可选:关闭密码登录服务器的功能

bash
代码解读
复制代码
# 修改 ssh 配置 vim /etc/ssh/sshd_config # 修改为 no PasswordAuthentication no # 重启服务 service sshd restart

总结

到这里基本上一台服务器的初始化设置就完成了。

    1. 避免使用root账号登录,应该是创建一个账号进行登录;
    1. 创建账号后有时需要使用root的权限,这就需要设置该用户拥有 sudo 权限,给予它在登录以后切换到 root 的能力;
    1. 既然创建的账号有了root权限,那么为了系统的安全性就应该关闭root账号的登录,即禁止使用 root 远程登录 ssh;
    1. 最后一步是使用 SSH key 进行免密登录,因为设置的密码其实是不安全的,同时也很麻烦。
注:本文转载自juejin.cn的一江东流水的文章"https://juejin.cn/post/7493352451837624383"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top