OpenSSH是免费和开源的,完全实现了SSH协议2.0,它提供了许多用于安全访问和管理远程计算机系统以及管理身份验证密钥的工具,例如ssh(Telnet的安全替代品)、scp、sftp(ftp的安全替代品)、ssh-keygen、ssh-copy-id、ssh-add等。
2023年3月底,OpenSSH 9.3版本已经正式发布,并且附带了许多新功能和错误修复,感兴趣的朋友可以查看“SSH发行说明”以获取更多信息。在本文中,小编主要阐述从源代码中安装和配置最新版本的OpenSSH服务器和客户端。注意,前提是默认你已经安装了OpenSSH套件。
安装要求:
- Debian/Ubuntu或RHEL/CentOS Linux系统
- C编译器
- Zlib 1.1.4或1.2.1.2或更高版本
- LibreSSL或OpenSSL >= 1.0.1 < 1.1.0
从源安装OpenSSH服务器
在安装最新版本的SSH之前,请确保使用以下命令检查系统上安装的SSH的当前版本,命令如下:
$ ssh -V OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
从上面的结果可以看出,安装的OpenSSH版本是7.4,要安装升级到最新的OpenSSH版本,首先需要安装一些依赖,即开发工具或者build essentials以及其它需要的包,具体如下:
-------------- 基于RedHat发行版 -------------- $ sudo yum update $ sudo yum group install 'Development Tools' $ sudo yum install zlib-devel openssl-devel -------------- 基于Debian发行版 -------------- $ sudo update $ sudo apt install build-essential zlib1g-dev libssl-dev
这里还要为安装OpenSSH服务器创建一个合适的环境,需要创建一个名为“sshd”的新系统用户和组,以及一个安全的地方chroot。
注意:一般来说,如果你已经安装好了,这个环境应该是可以运行的,你可以跳过这个部分,直接进入下一个步骤。否则,请运行以下命令进行设置。
$ sudo mkdir /var/lib/sshd $ sudo chmod -R 700 /var/lib/sshd/ $ sudo chown -R root:sys /var/lib/sshd/ $ sudo useradd -r -U -d /var/lib /sshd/ -c "sshd privsep" -s /bin/false sshd
简单解释上面useradd命令中的标志:
-r
– 告诉useradd创建一个系统用户-U
– 指示它创建一个具有相同名称和组ID的组-d
– 指定用户的目录-c
– 用于添加评论-s
– 指定用户的shell
现在,从任何可用的HTTP镜像下载OpenSSH 9.3版本的压缩包,或者可以使用以下wget命令直接在终端中下载,如下所示:
$ wget -c https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.3p1.tar.gz $ tar -xzf openssh-9.3p1.tar.gz $ cd openssh-9.3p1/
现在将使用--with-md5-passwords
--with-privsep-path
--sysconfdir
选项构建和安装OpenSSH服务器,这将安装/usr/local/中的所有文件(这是默认的安装前缀)。当然,你也可以通过./configure -h
进一步运行和自定义安装来查看所有可用选项。
例如,要启用PAM和SELinux支持,分别添加--with-pam
和--with-selinux
选项,这是因为需要安装所有必要的头文件才能使它们工作。
## Install PAM and SELinux Headers ## $ sudo apt install libpam0g-dev libselinux1-dev [Debian/Ubuntu系统] $ sudo yum install pam-devel libselinux-devel [CentOS/RHEL系统] ## Compile and Install SSH from Sources ## $ ./configure --with-md5-passwords --with-pam --with-selinux --with-privsep-path=/var/lib/sshd/ --sysconfdir=/etc/ssh $ make $ sudo make install
安装OpenSSH后,重新启动SSH或打开另一个终端窗口并检查系统上现在安装的OpenSSH版本,命令如下:
OpenSSH_9.3p1, OpenSSL 3.0.1 14 Dec 2021
各种OpenSSH配置文件位于:
- ~/.ssh/* –此目录存储用户特定的ssh客户端配置(ssh别名)和密钥。
- /etc/ssh/ssh_config –此文件包含系统范围的ssh客户端配置。
- /etc/ssh/sshd_config –包含sshd服务配置。
小常识:OpenSSH和SSH的区别有哪些?
OpenSSH是SSH协议的一个免费的开源实现,而SSH是一种安全网络协议。OpenSSH中包括SSH协议,但它还包括一些额外的功能和改进,例如SFTP、端口转发和更简便的密钥管理等。
OpenSSH提供了更好的安全性,这是因为它是开源的,因此可以被广泛审查和评估。另一个区别是操作系统的支持。OpenSSH能够运行在多个操作系统上(如Linux、Unix、Windows、Mac OS);而SSH的设计主要为Unix系统而定制,虽然也可以使用在其他系统上,但需要一些额外的配置和使用技巧。
总之,OpenSSH是SSH协议的一种实现,并添加了更多的特性和改进。
总结
以上就是在Linux系统中从源代码编译和安装OpenSSH的简单方法,相当来说比较简单,都是命令式操作,有需要设置的小伙伴可以参考上述较教程。
众所周知,OpenSSH是一种安全的网络连接协议,它使用加密技术来保护传输数据的安全性。OpenSSH是Secure Shell的缩写,它包括SSH协议的实现以及其他相关的工具,如SFTP、SSH客户端和SSH服务器等。另外,在OpenSSH中,用户可以使用自己的私钥和公钥来进行身份验证,这比传统的密码验证更加安全。同时,OpenSSH还可以通过端口转发、隧道等功能保持网络连接的安全。