服务器(CentOS)相关常用操作汇总(持续更新中)
目录
账户及登录
账户管理
阿里云root密码重置
用户/用户组管理
ssh登录设置
配置SSH密钥登录
通过阿里云控制台配置(不推荐)
本地生成密钥文件并配置
Putty密钥登录设置
账户及登录
账户管理
阿里云root密码重置


用户/用户组管理
首先使用root用户登录云服务器


进入云服务器后,进行账号管理
# 在root账户下:[root@xxx ~]#:
adduser [username] # 添加账户
passwd [username] # 给添加的账户设置或修改密码
userdel -r [username] # centos及debian系统通用,推荐
deluser --remove-home [username] # 删除用户,仅用于debian系统,不推荐
# 给非root用户赋予sudo权限
sudo usermod -aG wheel [username] # 实现方式是将用户加入wheel用户组(centos系统),对ubuntu系统,则是将wheel改为sudo组;-a表示追加,即不会改变用户已加入的用户组;
# 切换用户
sudo su - [username]
# 此时需要输入切换后的username的密码,而不是切换前用户的密码;
# 查看用户/用户组相关信息(lid命令需要sudo权限):
cat /etc/passwd # 查看系统中所有用户的列表
cat /etc/group # 查看系统中所有用户组的列表
whoami # 查看当前登录用户,注,若使用sudo命令,则返回的当前用户变为root;
groups # 查看当前用户所在的用户组
groups [username] # 查看用户所在的用户组信息;
lid -i/-n [username] # 查看用户所在的用户组信息,-i包含groupid信息,-n只显示用户组名称
lid -g [groupname] # 查看某用户组下的用户成员信息;
【补充说明】关于deluser命令和userdel命令:
1. deluser命令仅用于debian系统(仅验证了ubuntu),userdel命令可用于centos及debian系统;
2. 部分文章描述deluser是userdel的封装,使用命令deluser [username]可以删除用户信息,home目录,邮箱等,描述不准确,实测要删除用户home目录,必须加选项--remove-home,邮箱等未验证;
3. 部分文章描述adduser/deluser,useradd/userdel是两对命令,adduser生成的账号只能用deluser删除,useradd生成的账号只能用userdel删除,不准确,实测仅使用了adduser命令新建账号,在ubuntu下两个删除命令均可以删除账号;
综上,建议使用adduser和userdel命令来新建和删除账号;
ssh登录设置
为保证安全,一般对远程访问作以下设置:
- 禁用root用户远程登录:禁止使用root用户通过远程方式登录,防止网络恶意攻击,暴力破解root密码,而改用非root用户+sudo权限方式实现root功能,此替代的好处是恶意攻击首先需要获取到有效的用户名;
- 禁用密码远程登录:为进一步保证安全,还可以设置禁止用户通过密码远程登录,只能通过ssh密钥进行登录;
- 设置ssh密钥的密码:进一步,在生成ssh密钥用于登录时,还可以设置ssh密钥的密码(非用户登录密码),这样在使用ssh密钥进行登录时,还需要输入ssh密钥的密码,防止ssh私钥丢失后被恶意登录。
上述几项配置要注意顺序,例如禁用密码登录前需要将密钥登录配置完成并验证通过,防止密钥登录配置失败导致无法访问系统。
配置SSH密钥登录
SSH密钥登录指生成一对密钥对,包含公钥和私钥,服务器存储公钥,远程登录设备存储私钥。远程登录设备携带私钥文件申请访问服务器,密钥对配对通过即表示验证通过,比密码登录有更高的安全性。
通过阿里云控制台配置(不推荐)
阿里云控制器配置的密钥对默认只在服务器的root账户下写入公钥文件,因此默认只能通过root账户进行密钥登录,如果需要切换至非root用户,还需要手动绑定公钥文件至非root用户,比较麻烦,理解整个过程不太清晰。
本地生成密钥文件并配置
windows系统在cmd或powershell中,linux在终端中按下面步骤生成密钥文件并配置ssh密钥登录:
###### 1. 生成密钥文件
# windows下在cmd或powershell下运行
ssh-keygen -t rsa -b 4096 -C "comment msg"
# -C 是添加的注释信息,会写入pub文件,方便标识不同的密钥;
# 此命令生成的结果是一个rsa文件和一个.pub文件,分别对应私钥和公钥;
###### 2. 云服务器创建.ssh文件夹及公钥文件
mkdir ~/.ssh # 创建.ssh文件夹
chmod 700 ~/.ssh # 设置文件夹属性
touch ~/.ssh/authorized_keys # 创建公钥文件
chmod 600 ~/.ssh/authorized_keys # 设置公钥文件属性
# 注:1. 上述命令必须在以当前用户执行;2. 权限设置不正确可能导致无法ssh登录;
###### 3. 将公钥内容写入云服务器
echo "ssh-rsa xxxxxxxxxxxxxxxxxxxxxxx" >> ~/.ssh/authorized_keys
# 1. 写入位置:写入用户对应的.ssh目录下,对应ssh登录时必须以该用户登录;
# 2. echo语法:
# > 表示覆盖,文件不存在则自动创建文件;
# >> 表示追加;
# 每一个echo语句会在写入前自动追加换行符,因此不用手动换行;
###### 4. 云服务器SSH登录配置
sudo vim /etc/ssh/sshd_config
### 找到并设置如下内容
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
###
###### 5. 本地设备登录
ssh -i private_key_rsa username@server_ip
###### 6. 配置简化连接
# 上一步的登录命令需要写入私钥文件地址及ip地址,非常麻烦,可以通过config文件配置连接,然后以配置的连接名快速登录。
# windows在C:Users[UserName].ssh目录下新建config文件;
# linux在~/.ssh/目录下新建config文件;
# config 文件内容如下:
###
Host test # 连接配置的别名,用于连接命令使用
HostName 127.0.0.1 # 连接的server ip;
Port 22 # 连接的端口号,默认22
User root # 连接的用户,此项可省略
PreferredAuthentications publickey # 连接方式:SSH密钥
IdentityFile D:personal.sshid_rsa-aliyun # 私钥文件,可以不放在.ssh目录下;
Host ...
...
###
# 基于上述配置,可简化连接命令为
ssh root@test # 对应没有配置User选项时;
ssh test # 对应配置了User选项时;
Putty密钥登录设置
windows下使用putty登录也非常常见。Putty使用密钥登录时对应的私钥文件格式为ppk,因此需要先将rsa私钥文件转化为ppk格式,步骤如下:
- 开始菜单搜索运行PuttyGen,点击Load导入私钥文件;
- 可以为生成的新私钥文件设置密码,点击save private key,即可生成ppk格式的私钥文件;
- 生成ppk格式的私钥文件后,在打开Putty软件,在Session页面配置相关连接信息;
- 在SSH-Auth-Credentials页面配置私钥文件
- 配置完成,点击Open可进行连接,返回Session页面点击save可保存此车接配置。
禁用root用户登录和密码登录
###### 1. 修改配置文件
sudo vim /etc/ssh/sshd_config
#对应修改内容如下:
###
PermitRootLogin no # 允许root用户登录,设置为no
PasswordAuthentication no # 允许密码登录,设置为no
###
###### 2. 重启ssh服务
sudo systemctl restart sshd
本文地址:https://www.yitenyun.com/6916.html













