centos openssl openssh升级
安装openssl
cd openssl-1.1.1w
./config --prefix=/usr/local/openssl(指定安装位置) -d shared
make && make install
echo ‘/usr/local/openssl/lib’ >> /etc/ld.so.conf.d/openssl-1.1.1w.conf
ldconfig -v
安装openssh-9.8p1
停止服务
systemctl stop sshd
卸载旧版
rpm -qe rpm -qa | grep openssh
--nodeps
cp -r /etc/ssh /etc/ssh_bak
rm -rf /etc/ssh/*
tar -xzf /root/openssh-9.8p1 -C /usr/local/src
chwon -R root:root /usr/local/src/openssh-9.8p1
yum install -y gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel pam-devel
yum install -y zlib* pam*
cd /usr/local/src/openssh-9.8p1
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-zlib --with-md5-passwords --with-pam --with-ssl-dir=/usr/local/openssl(这个参数是编译安装openssl后路径不在默认位置的使用指定)
make && make install
修改配置
启动前要将新生成的sshd_config修改以下几个地方
vim /usr/local/openssh/etc/sshd_config
PermitRootLogin yes
PubkeyAuthentication yes
PasswordAuthentication yes
复制文件到相应系统文件夹
cp /root/openssh-9.8p1/contrib/redhat/sshd.init /etc/init.d/sshd
chmod +x /etc/init.d/sshd
chkconfig --add sshd
cat <> /etc/ssh/sshd_config
PermitRootLogin yes
PubkeyAuthentication yes
PasswordAuthentication yes
EOF
以下命令为多余,有问题时在做
cp /usr/local/openssh/etc/sshd_config /etc/ssh/sshd_config
cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd
cp /usr/local/openssh/bin/ssh /usr/bin/ssh
cp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen
重启sshd服务
systemctl restart sshd
systemctl enable sshd
要在Ubuntu 16上升级OpenSSL
首先,更新系统软件包列表:
sudo apt-get update
安装依赖项:
sudo apt-get install build-essential checkinstall zlib1g-dev libssl-dev
备份旧版本的OpenSSL:在更改系统默认的OpenSSL版本之前,建议先备份旧版本的配置文件和库文件。可以使用以下命令将它们复制到另一个目录中:
sudo cp /usr/bin/openssl /usr/bin/openssl.bak
sudo cp /etc/ssl/openssl.cnf /etc/ssl/openssl.cnf.bak
下载最新版本的OpenSSL源代码。你可以从OpenSSL官方网站获取最新版本的链接。例如,要下载OpenSSL 1.1.1w版本,可以使用以下命令:
wget https://www.openssl.org/source/openssl-1.1.1wtar.gz
解压下载的源代码包:
tar -xvf openssl-1.1.1w.tar.gz
进入解压后的目录:
cd openssl-1.1.1w
配置并编译源代码:
sudo ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
sudo make
安装编译好的OpenSSL:
sudo make install
更新系统的库路径以使用新安装的OpenSSL:
sudo echo “/usr/local/openssl/lib” | sudo tee /etc/ld.so.conf.d/openssl-1.1.1w.conf
sudo ldconfig
sudo cp /usr/local/openssl/bin/openssl /usr/bin/openssl
验证OpenSSL是否已成功升级:
openssl version
现在,你已经成功升级了Ubuntu 16上的OpenSSL。
要在Ubuntu 16上升级openssh
首先,更新系统软件包列表:
sudo apt-get update
安装依赖项:
sudo apt-get install build-essential zlib1g-dev libssl-dev
下载最新版本的OpenSSH源代码。你可以从OpenSSH官方网站获取最新版本的链接。例如,要下载OpenSSH 8.4p1版本,可以使用以下命令:
wget https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz
停止服务
sudo systemctl stop sshd
卸载旧版
sudo dpkg -r openssh-server
sudo cp -r /etc/ssh /etc/ssh_bak
sudo rm -rf /etc/ssh/*
解压下载的源代码包:
tar -xvf openssh-9.8p1.tar.gz
进入解压后的目录:
cd openssh-8.4p1
配置并编译源代码:
sudo ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl
sudo make
安装编译好的OpenSSH:
sudo make install
更新系统服务:OpenSSH作为系统服务运行,因此需要确保新安装的OpenSSH替换系统的默认SSH服务。你可以通过更新系统的service配置文件来实现这一点:
在Ubuntu 16上编译安装SSH后,可以使用systemctl命令来启动SSH服务。以下是使用systemctl启动SSH服务的步骤:
确保SSH服务已正确安装:在启动SSH服务之前,请确保你已经完成了SSH的编译和安装过程,并且相关的文件和配置文件已经就绪。
创建systemd服务单元文件:如果你在编译SSH时没有自动创建systemd服务单元文件(例如sshd.service),你需要手动创建一个。这个文件通常位于/etc/systemd/system/或/lib/systemd/system/目录下。一个简单的服务文件示例如下:
[Unit]
Description=OpenSSH server daemon
After=network.target
[Service]
ExecStart=/usr/sbin/sshd -D $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=5s
SyslogIdentifier=sshd
[Install]
WantedBy=multi-user.target
请根据你的实际安装路径修改ExecStart行中的路径。
重新加载systemd配置:创建服务单元文件后,需要重新加载systemd配置,以便systemd识别新服务。可以使用以下命令重新加载配置:
sudo systemctl daemon-reload
在/etc/systemd/system目录建立软链接
sudo ln -s /lib/usr/systemd/systemc/sshd.service /etc/systemd/system/ssh.service
sudo ln -s /lib/usr/systemd/systemc/sshd.service /etc/systemd/system/sshd.service
重启SSH服务以应用新版本:
sudo systemctl restart sshd
验证OpenSSH是否已成功升级:
ssh -V
现在,你已经成功升级了Ubuntu 16上的OpenSSH。