ubuntu编译安装openssh

背景

新装的UBUNTU 14.04.5 LTS i686版本,可VNC连接。
已安装openssl 1.0.1f版本,未安装zlib和openssl。
现需要安装openssh用于远程连接,停用vnc。

注意事项

安装openssh主要依赖zlib和openssl,出于安全考虑,建议均安装官方发布的最新稳定版本。

openssh 7.7p1要求openssl版本小于1.1.0。
下载均建议从官方网站下载,不建议从第三方渠道下载。
zlib官方地址点击访问
openssl官方地址点击访问
openssh官方地址点击访问
均选择源码的tar.gz包下载。

安装

首先安装zlib和openssl,最后安装openssh。

安装zlib

1
2
3
4
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make && make install

安装openssl

1
2
3
4
tar -zxvf openssl-1.0.2n.tar.gz
cd openssl-1.0.2n
./config
make && make install

由于系统原来存在openssl其他版本,备份原版本。
mv /usr/bin/openssl /usr/bin/openssl.old
新建软链接(路径根据make install结果可以看到,根据实际情况创建即可)

1
2
3
ln -s /usr/local/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/bin/openssl /usr/local/bin/openssl
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl

同时需要更新openssl动态库目录(此处目录路径需根据实际情况调整)
echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
更新库目录缓存
ldconfig -v
确认openssl版本
openssl version

安装openssh

configure时候需要指定openssl安装目录,防止openssh无法找到。

1
2
3
4
5
tar zxvf openssh-7.7p1.tar.gz
cd openssh-7.7p1
./configure --with-ssl-dir=/usr/local/ssl
make
make install

make install时出现下面错误信息

1
2
Privilege separation user sshd does not exist
make: [check-config] Error 255 (ignored)

需要在/etc/passwd中添加sshd用户。

1
2
vi /etc/passwd
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

然后重新make install即可。
此处报错是Privilege separation(特权分离),是openssh的一种安全机制。

配置

sshd服务启动

/usr/local/sbin/sshd

开机自启动

由于编译安装,ssh未添加至系统服务,故为防止重启之后无法连接,添加开机自启动。
sed -i '$i\/usr/local/sbin/sshd' /etc/rc.local

Recommended Posts