centos6升级openssh脚本

安全整改需要升级openssh,写个没有副作用的脚本一键升级。

主要命令及参数解释

1
2
3
4
5
6
7
wget -N  url -P dist
# wget -N 会对比本地文件和待下载文件,保留最新的文件
# wget -P 设置文件保存的目录
tar xzvf abc.tar.gz -C /usr/pwd/
# tar -C 解压到指定目录,会覆盖
grep 'abc' || echo "acn" >> file
#||运算。如果前一条命令返回0,则后一条执行;如果前一条返回1,后一条不执行。

脚本内容

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# update openssh for centos6 or redhat6
## create by hhzzer
## version 0.2

urlopenssl=http://172.23.20.251:8000/openssl-1.0.2k.tar.gz
urlopenssh=http://172.23.20.251:8000/openssh-7.5p1.tar.gz
url_repo=http://172.23.20.251:8000/centos.repo
#wget repo and install pakage
mkdir /etc/yum.repos.d/repo-bak
mv /etc/yum.repos.d/Cent* /etc/yum.repos.d/repo-bak
wget -N $rul_repo -P /etc/yum.repos.d/
yum clean all
yum makecache
yum install gcc zlib zlib-devel pam pam-devel wget -y

# wget source code and unzip
wget -N $urlopenssl -P /usr/src/
wget -N $urlopenssh -P /usr/src/
tar xzvf /usr/src/openssl-1.0.2k.tar.gz -C /usr/src/
tar zxvf /usr/src/openssh-7.5p1.tar.gz -C /usr/src/

# make and make install openssl
cd /usr/src/openssl-1.0.2k
./config shared zlib
make
make install
mv /usr/bin/openssl /tmp/7
cp -r /usr/include/openssl/ /tmp/openssl-old-7
rm -rf /usr/include/openssl
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl/ /usr/include/openssl
grep '/usr/local/ssl/lib' /etc/ld.so.conf || echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
ldconfig -v

# make and make install openssh
cp -r /etc/ssh /etc/ssh-bak03
cd /usr/src/openssh-7.5p1
./configure --prefix=/usr --sysconfdir=/etc/ssh --without-zlib-version-check --with-ssl-dir=/usr/local/ssl --with-pam
make
make install
sed -i 's/#UseLogin no/UseLogin yes/g' /etc/ssh/sshd_config
chmod 600 /etc/ssh/*_key

# restart sshd
service sshd restart
ssh -V