-
介绍
远程管理Linux可以通过多种方式进行,例如SSH、VNC等都可以实现。这其中又以SSH的使用最为广泛,主要原因是SSH实现了一种更为安全、便捷的方式。
-
SSH服务工作原理
SSH全称Secure Shell,简单来说SSH是一种协议,用户远程加密的安全登陆。简单的说,如果一个用户从远程计算机使用SSH协议登陆到本地,可以认为这种登陆时安全的,即使传输的数据包被截获也不必担心。
-
SSH服务器和客户端的工作流程
SSH协议可以分为三个部分:传输层协议、用户认证协议和连接协议。其中传输层协议提供数据加密、服务器认证和信息完整性等安全方面的功能;用户认证协议则主要用于客户端身份认证;连接协议则将建立的加密隧道分为若干逻辑通道。其他高层协议可以利用这些逻辑通道建立安全的通信通道。
SSH协议由服务器和客户端两部分构成,目前由两个版本1.x和2.x,不同的版本之间可以向下兼容,即2.x的客户端可以访问1.x的服务端。服务端是一个守护进程,在RHEL8种名为sshd,守护进程将会一直运行在后台并监听来自22/TCP端口的请求。服务端一般包括密钥交换、公共密钥认证、对称密钥加密及非安全连接等。客户端包含了SSH访问程序(windows使用putty、Xshell等)、SCP(远程拷贝,windows中可以使用winscp)、slogin(远程登陆)、SFTP(安全文件传输,windows中使用winscp)等应用程序。
-
安装OpenSSH服务器
- 在RHEL8中默认已经安装了。可以使用下面命令查询:
rpm -qa | grep ssh
- 可以看见OpenSSH的服务端和客户端都已经安装了。
- 安装命令(如果一台机器,要做服务端和客户端,那就上面的三个包都要安装)
yum install openssh.x86_64 yum install openssh-server.x86_64 yum install openssh-clients.x86_64
- 启动sshd(RHEL默认是已经启动)
systemctl start sshd.service
- 查看sshd状态
systemctl status sshd.service
- OpenSSH服务端配置文件
OpenSSH服务端配置文件位于/etc/ssh/sshd_config,此目录下还有一个名为ssh_config的文件文件,它是客户端的配置文件。OpenSSH著配置目录/etc/ssh还有一些密钥文件(通常文件名中由rsa字符串),这些文件主要用于通信数据包的加密工作。
-
SSH客户端
在windows系统中登陆需要借助第三方软件,比如SecureCRT,Xshell等。
-
以Xshell为例
- 密码登陆
- 密钥登陆
默认情况下,私钥和公钥分别保存在~/.ssh/id_rsa和~/.ssh/id_rsa.pub文件中
ssh-keygen
- 将公钥写道服务器.ssh目录下
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.177.128
这个时候,就能做到免密登陆了,由于作者的电脑配置不高,开两台会卡死,因此就不验证了。
具体的免密登陆,可以看这篇博客。ssh免密登陆配置方法