Linux 从源码编译安装 OpenSSH
https://blog.csdn.net/bytxl/article/details/46639073
Linux 从源码编译安装 OpenSSH以及各问题解决
简单的说 OpenSSH 是一组安全远程的连接工具,主要包括了几个部份:ssh、sshd、scp、sftp、ssh-keygen、ssh-agent、ssh-add。OpenSSH 安装配置比较复杂,难点在配置,特别是在 VPS 中,配置不当就完全无法链接 VPS 了。
一、关于 OpenSSH
OpenSSH 是一组用于安全地访问远程计算机的连接工具。它可以作为 rlogin、 rsh rcp 以及 telnet 的直接替代品使用。更进一步, 其他任何 TCP/IP 连接都可以通过 SSH 安全地进行隧道/转发。 OpenSSH 对所有的传输进行加密, 从而有效地阻止了窃听、 连接劫持,以及其他网络级的攻击。
ssh(SSH 客户端,用于登录建立连接,是 rlogin 与 Telnet的安全替代方案)
sshd (SSH 服务端,典型的独立守护进程)
scp、sftp (文件安全传输工具,rcp、ftp 安全的替代方案)
ssh-keygen (用于产生 RSA 或 DSA 密钥)
ssh-agent、ssh-add(帮助用户不需要每次都要输入金钥密码的工具)
二、编译前的准备工作
2.1、查看 OpenSSH 版本
部分 Linux 系统已默认安装了 OpenSSH,像 Ubuntu Server 10.10 就已安装了 OpenSSH_5.5p1
1 |
ssh -v |
2.2、安装 OpenSSL 及编译环境
必须先安装依赖 OpenSSL,具体见《Linux 从源码编译安装 OpenSSL》 http://www.linuxidc.com/Linux/2011-10/45738.htm
2.3、备份 OpenSSH 旧配置文件
1 |
cp /etc/init.d/ssh /etc/init.d/ssh.old |
2.4、卸载旧版 OpenSSH
1 |
apt-get purge openssh-client openssh-server |
三、编译安装 OpenSSH
3.1、关于特权分离
所谓特权分离(Privilege Separation)实际上是一种 OpenSSH 的安全机制,该特性默认开启,可通过配置文件中的 UsePrivilegeSeparation 指令开启或关闭。
1 |
mkdir -p /var/empty #设置一个空目录 |
3.2、编译安装 OpenSSH
详细编译选项见《OpenSSH-4.7p1 安装指南》
下载在 http://www.linuxidc.com/Linux/2011-10/45740.htm
1 |
wget http://ftp.aso.ee/pub/OpenBSD/OpenSSH/portable/openssh-5.6p1.tar.gz |
--prefix 安装目录
--sysconfdir 配置文件目录
--with-ssl-dir 指定 OpenSSL 的安装目录
--with-privsep-path 非特权用户的chroot目录
--with-privsep-user=sshd 指定非特权用户为sshd
--with-zlib 指定zlib库的安装目录
--with-md5-passwords 支持读取经过MD5加密的口令
--with-ssl-engine 启用OpenSSL的ENGINE支持
3.3、开机自启动 sshd
1 |
mv /etc/init.d/ssh.old /etc/init.d/sshd #使用原来的启动脚本 |
1 |
#将原路径"/usr/sbin替换为"/usr/local/sibn" |
四、 OpenSSH 安全配置
4.1、查看 OpenSSH 配置文件
1 |
cd /usr/local/ssh |
moduli #ssh服务器的Diffie-Hellman密钥文件
ssh_config #ssh客户端配置文件
sshd_config #ssh服务器配置文件
ssh_host_dsa_key #ssh服务器dsa算法私钥
ssh_host_dsa_key.pub #ssh服务器dsa算法公钥
ssh_host_rsa_key #ssh服务器rsa算法私钥
ssh_host_rsa_key.pub #ssh服务器rsa算法公钥
4.2、生成服务器密钥对
默认 OpenSSH 安装完毕后就自动生成了,如果丢失可通过下面命令重新生成。
1 |
ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_key -N '' #适用于ssh-1版 |
特别注意:
1、系统密钥对是不能设置密码的, -N 后面 是两个 单引号 !表示密码串为空。
2、注意公钥和私钥的权限是不同的。
金步国作品全集CHM电子书:Apache、Linux系统、PostgreSQL、OpenSSH、OpenSSL
https://www.linuxidc.com/Linux/2011-10/45740.htm
linux公社资料
https://linux.linuxidc.com/
Linux 从源码编译安装 OpenSSH的更多相关文章
- Linux下源码编译安装rpy2
R(又称R语言)是一款开源的跨平台的数值统计和数值图形化展现工具.rpy2是Python直接调用R的第三方库,它可以实现使用python读取R的对象.调用R的方法以及Python与R数据结构转换等.这 ...
- Linux 下源码编译安装 vim 8.1
前言 目前 linux 的各个发行版基本上都是带了一个 vi 编辑器的,而本文要说的 vim 编辑器对 vi 做了一些优化升级,更好用.当我们需要远程操作一台 linux 服务器的时候,只能使用命令行 ...
- Linux系统 - 源码编译安装Nginx
什么是Nginx? Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器,在高连接并发的情况下N ...
- 基于源码编译安装openssh
最近的,openssl/openssh等相继漏洞的暴露,让暴露在公网的linux.沦陷为肉鸡的正营... 没办法,还是升级版本... 00.openssh简介 OpenSSH 是一组安全远程的连接工 ...
- 在Linux下源码编译安装GreatSQL/MySQL
欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 本 ...
- Linux环境源码编译安装SVN
zhoulf 2015/2/28 原创 安装说明 安装环境:Red Hat Enterprise Linux 安装方式:源码安装 软件:apr-1.5.0.tar.gz.apr-iconv-1.2.1 ...
- 1、Linux下源码编译安装PostgreSQL
操作系统:Centos7 说明:postgresql必须在postgres用户下初始化数据库和启动,否则报错. PostgreSQL的特性 PostgreSQL是一种几乎可以运行在各种平台上的免费的开 ...
- Linux httpd源码编译安装
# wget http://apache.fayea.com/httpd/httpd-2.2.31.tar.bz2 去官网下载源码包 # mv httpd-.tar.bz2 /usr/local/sr ...
- Linux系统——源码编译安装
记得要先去把httpd-2.2.9.tar.gz通过xftp进行文件传输第一步:yum仓库下安装编译环境的支持程序 #yum -y install gcc gcc-c++ make 第二步:将源码包h ...
随机推荐
- Unity应用架构设计(3)——构建View和ViewModel的生命周期
对于一个View而言,本质上是一个MonoBehaviour.它本身就具备生命周期这个概念,比如,Awake,Start,Update,OnDestory等.这些是非常好的方法,可以让开发者在各个阶段 ...
- springboot更换日志系统
背景:springboot.2.1.2默认使用logback作为日志系统,我想禁用logback,换成效率更高的log4j2. 一.去除默认的logback依赖 1. 方法一 精准去除 depende ...
- 批量生产Xcode group 并映射 实体目录
xaddgroup A Ruby gem . Batch Add Group To Xcodeproj , map Real Dir. Install $ gem install xaddgroup ...
- Base标签小记:更改当前页面的地址
一般来说,H5游戏的部署,index.html和代码资源都会放在同一个地址下然后使用iFrame导入到需要加载游戏的页面即可. 但是今天游戏项目部署遇到了一个问题,游戏自己的访问页面(index.ht ...
- 9-11-Trie树/字典树/前缀树-查找-第9章-《数据结构》课本源码-严蔚敏吴伟民版
课本源码部分 第9章 查找 - Trie树/字典树/前缀树(键树) ——<数据结构>-严蔚敏.吴伟民版 源码使用说明 链接☛☛☛ <数据结构-C语言版>(严蔚 ...
- 设置GRUB密码以防止单用户模式下root密码被恶意更改
在使用LInux系统的时候可能会发生忘记root密码的情况,通常管理员会进入单用户模式下进行重置root密码.那么问题来了,既然管理员可以进入单用户模式,如果恶意用户可以接触的到计算机的话毫无疑问也是 ...
- centos7修改系统时间、时区
直接用下面命令直接更换时区 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
- jenkins GitHub 自动触发
jenkins GitHub 自动触发 转载请注明出处: 转载自Bin's Blog: jenkins GitHub 自动触发( http://www.wenbin.cf/post/54/ ) 需要 ...
- Java窗体居中显示的2种方法
第1种方法: //setSize(300, 200); pack(); // 得到显示器屏幕的宽.高 int width = Toolkit.getDefaultToolkit().getScreen ...
- SpringBoot系统列 4 - 常用注解、拦截器、异常处理
在前面代码基础上进行改造: 1.SpringBoot常用注解 @SpringBootApplication :指定SpringBoot项目启动的入口,是一个复合注解,由@Configuration.@ ...