TypeCodes

2015博客升级记(一):安装CentOS7后需要的操作

这是《2015年博客升级记》系列文章的第一篇,主要记录安装完CentOS7后的一些优化操作,包括更换yum源并升级系统到CentOS7.1、使用sshd登录、修改机器名、vi映射为vim、vimrc的配置。

安装CentOS7后需要的操作

1 安装EPEL源

EPEL即Extra Packages for Enterprise Linux,是基于Fedora的一个项目,为红帽系的操作系统提供额外的软件包,适用于RHEL、CentOS和Scientific Linux。EPEL为CentOS提供了额外的10000多个软件包,而且都不会更新或者替换系统本身组件。执行下面这条安装命令后,会在/etc/yum.repos.d目录下生成一个epel.repo文件。

[root@typecodes ~]# yum -y install epel-release
2 安装yum-axelget插件

yum-axelget是EPEL提供的一个yum插件。默认的yum是单线程下载的,使用该插件后用yum安装软件时可以并行下载。yum-axelget插件原理是调用系统中的axel下载软件,然后根据软件包的大小自动设定线程数。在多线程操作时,还能避免因为线程数过多而导致服务器拒绝下载的问题,大大提高了软件的下载速度,减少了下载的等待时间。注意:通过下面这条安装命令,会同时安装axel下载软件。

[root@typecodes ~]# yum -y install yum-axelget
3 更新CentOS源

在安装完EPEL源和yum-axelget插件后,我们就可以利用它们升级当前的CentOS7到CentOS7.1了(耗时大概10分钟)。

[root@typecodes ~]# yum clean all && yum makecache && yum -y update

然后可以使用下面两条命令查看当前CentOS的内核版本和发行版本信息。

##########内核版本
root@typecodes ~]# cat /proc/version
Linux version 3.10.0-123.9.3.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC) ) #1 SMP Thu Nov 6 15:06:03 UTC 2014
##########发行版本
[root@typecodes ~]# lsb_release -a
LSB Version:    :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description:    CentOS Linux release 7.1.1503 (Core) 
Release:        7.1.1503
Codename:       Core
4 使用sshd登录

在前文《阿里云CentOS主机 LNMP 环境之主机安全篇一》中,已经讲述了禁止任何用户使用密码登录,而只允许root用户使用sshd方式登录的方法。其中的公、私密钥是通过SecureCRT生成的,这里我们直接使用Linux命令生成公私钥,方法更为简单快捷。将生成的私钥vfhky20150505保存到本地供SecureCRT等工具使用即可(记得删除服务器上的私钥哦)。

4.1 使用Linux命令生成公私钥文件
#######创建公钥存放目录~/.ssh
[root@typecodes ~]# mkdir .ssh && cd .ssh
#######生成1024字节的rsa加密的公私钥
[root@typecodes .ssh]# ssh-keygen -b 1024 -t rsa -f vfhky20150505
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Passphrases do not match.  Try again.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in vfhky20150505.        [私钥]
Your public key has been saved in vfhky20150505.pub.        [公钥]
The key fingerprint is:
59:54:31:5f:37:d5:9a:c3:32:65:7d:fd:05:f3:20:38 root@typecodes
The key's randomart image is:
+--[ RSA 1024]----+
|          .o=.++B|
|         .E  +o=O|
|          .. +.o=|
|         o  o = .|
|        S    o . |
|                 |
|                 |
|                 |
|                 |
+-----------------+
[root@typecodes .ssh]# ls
vfhky20150505  vfhky20150505.pub
#######将公钥文件重命名为authorized_keys文件
[root@typecodes .ssh]# mv ~/vfhky20150505.pub authorized_keys
#######将私钥文件下载到Windows主机后马上删除避免被恶意使用
[root@typecodes .ssh]# rm -rf vfhky20150505

#######当然也可以选择生成 ed25519 格式的公私钥
[root@typecodes .ssh]# ssh-keygen -t ed25519 -C "[email protected]" -f vfhky20240228_ed25519
4.2 重启sshd服务,使之生效

新建一个shell文件sshdconfig.sh,并执行chmod +x sshdconfig.sh赋予执行权限,然后复制以下内容到文件中,最后执行命令./sshdconfig.sh即可使sshd服务生效。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/bash
# sshd service configure script for centos or ubuntu
# @author vfhky 2015.05.05 https://typecodes.com/linux/centos7afteroperate.html

# set the sshd login port you want which should be more than 1024 
sed -i -e "s@^#Port 22@Port 8866@g"  -e "s@^#Protocol 2@Protocol 2@g" /etc/ssh/sshd_config

# set the secret key bits
sed -i -e "s@^#ServerKeyBits 1024@ServerKeyBits 1024@g"  -e "s@^#RSAAuthentication yes@RSAAuthentication yes@g" /etc/ssh/sshd_config

# limit the login-way of user within Authentication-key
sed -i -e "s@^#PubkeyAuthentication yes@PubkeyAuthentication yes@g"  -e "s@^#PermitEmptyPasswords no@PermitEmptyPasswords no@g" /etc/ssh/sshd_config

sed -i -e "s@^GSSAPIAuthentication yes@#GSSAPIAuthentication yes@g"  -e "s@^GSSAPICleanupCredentials yes@#GSSAPICleanupCredentials yes@g" /etc/ssh/sshd_config

# forbid login with password
sed -i -e "s@^PasswordAuthentication yes@PasswordAuthentication no@g" -e "s@^#PasswordAuthentication yes@PasswordAuthentication no@g" \
    -e "s@^PermitRootLogin yes@PermitRootLogin without-password@g" -e "s@^#PermitRootLogin prohibit-password@PermitRootLogin prohibit-password@g" /etc/ssh/sshd_config

# if key gen by rsa, should append
# echo "PubkeyAcceptedKeyTypes=+ssh-rsa" >> /etc/ssh/sshd_config

# start the sshd service
systemctl restart sshd.service
service sshd start
6 修改主机名

在前文《CentOS7系统如何修改主机名》中已经提到了修改CentOS7系统的主机名方法,这里再重复下。

[root@typecodes ~]# hostnamectl set-hostname typecodes
7 将vi映射为vim命令、高亮grep词语

如何在编辑文件时,直接使用vi命令达到vim命令的效果,设置grep词语高亮

[root@typecodes ~]# echo -e "\nalias vi=vim\nalias grep='grep --color'\n" >>~/.bashrc && source ~/.bashrc

如果还没有安装vim,那么可以使用yum -y install vim命令进行安装。

8 配置vimrc文件

下面这条vim配置命令是我经常使用的,包括行号、自动缩进、高亮、文件编码和粘贴时不变形的快捷键F9等等,直接使用root用户把下面的内容追加到/etc/vimrc文件的末尾。

colo desert                             "设置主题方案
"colo darkblue
set shortmess=atI                           "不显示欢迎界面
set helplang=cn                             "帮助中文支持

"set go= "设置没有GUI界面

set guioptions-=T                           "隐藏工具栏
set guioptions-=m                           "隐藏菜单栏
set guioptions-=L                           "隐藏左侧滚动条
set guioptions-=r                           "隐藏右侧滚动条
set guioptions-=b                           "隐藏底部滚动条
set guifont=NSimSun:h10                     "设置新宋体

set encoding=utf-8                          "编码格式,防止中文乱码
"设置当前文档的编码格式以及保存时的格式
set fileencoding=utf8
"vim启动时逐一探测即将打开的文字的编码
set fileencodings=ucs-bom,utf-8,chinese,gbk,latin-1
"设置文件格式默认ffs=dos,unix
set ffs=unix,dos,mac
"vim提示信息乱码
language messages zh_CN.utf-8
"vim菜单乱码
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim

set equalalways                             "分割窗口时保持相等的宽/高


"让回格键可以删除缩进的空格换行的回车键以及插入前已经输入的文字
set backspace=indent,eol,start
"让光标移到一行最左边的时候若继续按左键, 光标能回到上一行的最右边,具体可:h whichwrap
set whichwrap=b,s,<,>,[,]
" 我的状态行显示的内容包括文件类型和解码 
set statusline=%F%m%r%h%w\ [TYPE=%Y]\ [%{&ff}][%{&fenc!=''?&fenc:&enc}]\[%{(&bomb!=''?'bom':'nobom')}]\ [POS=%l,%v][%p%%]\ %{strftime(\"%Y.%m.%d\ \%H:%M\")} "set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%]

" 不让vim发出讨厌的滴滴声
set noerrorbells
" 关闭使用可视响铃代替呼叫
set novisualbell

"自动缩进
set autoindent
"智能缩进
set smartindent
"Tab键的宽度
set tabstop=4
"统一缩进为4
set softtabstop=4
set shiftwidth=4
"设置自动换行
set wrap


" 在处理未保存或只读文件的时候,弹出确认
set confirm


"自动补全设置利用gvim自带的插件
autocmd FileType python set omnifunc=pythoncomplete#Complete
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
autocmd FileType c set omnifunc=ccomplete#Complete
"无需closetag插件,一行代码完成html/xml的闭合tag自动补全
autocmd BufNewFile,BufRead *.html,*.htm,*.xml inoremap </ </<c-x><c-o>



"让注释符与语句之间留一个空格
let NERDSpaceDelims=1
"多行注释时样子更好看
let NERDCompactSexyComs=1


set nobomb
set fileformats=unix
set pastetoggle=<F9>
set backspace=2                                 "设置退格键可用
set shiftwidth=4                                "换行时行间交错使用4个空格
set noexpandtab                                 "不要用空格代替制表符
set cursorline                                  "突出显示当前行
set number                                      "显示行号
set showmode
"set nocompatible                               "关闭模式
set magic                                       "设置魔术
set ruler                                       "右下角显示光标位置的状态行
set autoindent                                  "设置自动缩进对齐
set smartindent                                 "智能自动缩进
set cindent                                     "C风格缩进
set laststatus=2                                "总是显示状态行
set ignorecase                                  "在搜索时忽略大小写
set incsearch                                   "实时搜索
set hlsearch                                    "高亮搜索结果
set noignorecase                                "不区分大小写
set completeopt=longest,menu                    "智能补全
"set list                                       "显示tab符,使用一高亮竖线代替
set noundofile                                  "设置无备份
set nobackup
set noswapfile
set showmatch                                   "设置匹配模式,如括号等
set autochdir                                   "自动切换当前目录为当前文件所在的目录
syntax enable                                   "打开语法高亮 
syntax on                                       "开启文件类型侦测
set showcmd
打赏支持

Comments »