【银河麒麟 V10】SSH服务介绍、安装、使用指令
SSH服务简介
网络传输信息最重要的就是确保安全性,这个安全性分为两个方面,一个是保证数据安全到达接受一方,另一个则是确保数据不被截获破解。SSH服务则很好地解决了数据传输的问题。它不仅用于加密并且压缩传输的数据,而且提高了数据传输的速度、增强了安全性。
SSH 叫安全外壳协议(Secure Shell),是一种加密的网络传输协议,可在不安全的网络中网络服务提供安全的传输环境。它通过在网络中创建安全隧道来实现 SSH 客户端和服务器之间的连接。最早的时候,互联网通信都是明文通信,一旦被截获,内容就会被暴露。
目前,一般使用免费的OpenSSH代替SSH通信协议。
在利用Telnet,rlogin和ftp进行网络连接时,网络传输中的数据是没有经过加密的,安全性不高。而SSH是一个在应用程序中提供安全通信的协议,对传输的数据进行加密,保证数据在传输时不被恶意破坏、泄露和篡改。通过SSH可以安全地访问服务器。
如需深入了解SSH可以参考这篇文章深入了解SSH
加密体系结构
在密码学中,加密是将明文信息隐匿起来,使之在缺少特殊信息时不可读。加密体系包括了加密算法、数字摘要、数字签名和CA。现代密码学的一项重要发明和进展是公开密钥密码体制。密码学的主题包括两个方面:一方面是保护信息传递的机密性;另一方面是身份验证、信息记录和数据完整性的保障。
公共密钥体制的理论结构基础是非对称性算法,其原理是加密密钥和解密密钥分离。加密密钥谁都可以使用,但解密密钥就只有解密人自己知道。不需专门使用安全通道传递密钥,简化了密钥管理。公共密钥体制有时也称为公开密钥算法或简称公钥算法。
现在流行的RSA和AES加密算法都是完全公开的,一方取得已加密的数据,就算知道加密算法也好,若没有加密的密钥,也不能打开被加密保护的信息。
公共密钥算法加解密过程
用户A发送数据给用户B
- 第1步,用户B通过网络等方式向外界公开他的公钥PUB_B。
- 第2步,用户A得到用户B的公钥PUB_B,然后使用PUB_B对信息加密发送给用户B。
- 第3步,用户B在收到密文后,使用其私钥PRI_B解密。
OpenSSH安装
OpenSSH是免费的SSH协议替代软件,提供许多安全的实用程序。
程序名 | 作用描述 |
---|---|
sshd | 运行OpenSSH的服务器软件,监听来自客户端的连接请求,收到请求后,执行身份验证来为客户端提供服务。 |
ssh | 用于登录其他主机或者在其他主机上运行程序,属于客户端程序,有时也被称为“slogin”。 |
scp | 用于在主机间运行安全性复制工作的程序,替代rcp程序。 |
ssh-keygen | 用于产生Public Key验证密钥,即RSA或DSA的主机及用户验证密钥。 |
ssh-agent | 保存验证用的RSA密钥。 |
ssh-add | 产生新的密钥。 |
sftp-server | SFTP服务器软件。 |
sftp | 安全性更高的FTP程序。 |
ssh-keyscan | 集中管理SSH公钥软件。 |
ssh-keysign | SSH的说明程序,在主机验证时运行。 |
当前OpenSSH和OpenSSL最新版本的下载地址为:
ftp://mirror.planetunix.net/pub/OpenBSD/OpenSSH/openssh-9.6.tar.gz
ftp:// ftp.openssl.org/source/openssl-1.1.1w.tar.gz
OpenSSH源代码软件包提供了SSH客户端和服务端程序(sshd)。
在银河麒麟系统按默认设置安装的情况下,OpenSSH服务、客户程序以及OpenSSL都会自动安装。一般来说,先输入命令查看系统中OpenSSH服务的安装过程。
输入以下指令查看OpenSSH服务的安装情况:
[root@localhost ~]#yum list installed |grep openssh
指令执行后显示如图所示:
使用指令
使用systemctl命令启动SSH服务:
[root@localhost ~]#systemctl start sshd.service
查看SSH的启动状态:
[root@localhost ~]#systemctl status sshd
启动后如图所示:
重启服务:
[root@localhost ~]# systemctl restart sshd.service
停止服务:
[root@localhost ~]#systemctl stop sshd.service
自动启动服务:
执行“ntsysv”命令启动服务配置程序,在显示的对话框(如下图所示)中找到“sshd”服务,并在其前面加上星号“*”,选择“确定”按钮。
SSH客户端在Windows平台下的使用
第1步,获取PuTTY程序
Windows下有许多SSH的客户端程序,一般可以使用免费的PuTTY程序。下载地址:http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html,页面如图所示。
第2步,连接SSH服务器
启动下载的putty.exe文件,显示PuTTY程序主界面,在“Host Name”标识的文本框中输入服务器的IP地址或域名,选择“Protocol”区域的“SSH”复选按钮,最后单击“Open”按钮开始连接,如图所示。
注意:
在第一次连接到服务器的时候,PuTTY程序显示警告信息和服务器信息,这是因为服务器公钥还没有缓存在注册表中,如图所示。
第3步,登录远程系统
PuTTY成功地连接到SSH服务器后,显示登录信息并提示用户输入用户名和口令。正确输入用户名和口令登录远程系统。
SSH客户端在Linux平台下的使用
OpenSSH的客户程序是openssh-clients,用来连接SSH服务器。银河麒麟系统已经默认安装了SSH客户程序,需要检查系统是否安装了SSH客户程序或查看安装版本,可以使用以下命令:
[root@localhost ~]#yum list installed | grep openssh
1、以ssh命令登录远程主机
安装好openssh-clients程序后,就可以登录SSH服务器了,这里直接使用ssh命令。ssh与rlogin,rsh和telnet的功能相同,但有更强的安全性,能够登录远程主机并运行程序。
以下是ssh的命令格式:
ssh 服务器的IP地址或主机名
为说明用户登录的信息,以OpenSSH服务器主机的IP地址为192.168.247.131为例。
用户如果是第一次使用ssh命令登录OpenSSH服务器,那么显示如下信息:
[root@localhost ~]# ssh 192.168.247.131
The authenticity of host ‘192.168.247.131 (192.168.247.131)’ can’t be established.
ECDSA key fingerprint is SHA256:nA2aq/w9ddvWQY5PirUK5yNZIrLNmUeexjgE42t3IN8.
ECDSA key fingerprint is MD5:33:68:38:bf:ea:1c:5e:21:c6:d4:c7:50:9b:51:67:20.
Are you sure you want to continue connecting (yes/no)?
表示目前尚未建立主机的验证数据,要继续则输入“yes”,显示如下警告信息:
Warning: Permanently added ‘192.168.247.131’ (ECDSA) to the list of known hosts.
root@192.168.247.131’s password:
表示主机已加入到已知主机列表中,接下来服务器提示输入密码。
密码输入正确后,系统响应上次登录的日期和时间,并进入Shell,如图所示,则表示验证成功。
(1)使用和现在不同的账号名登录
使用如下语法格式:
ssh –1账号名 服务器的IP地址或主机名
或者
ssh账号名@服务器的IP地址或主机名
实例 使用“sheriff”账户名登录192.168.1.101。
[root@localhost ~]# ssh -1 sheriff 192.168.1.101
(2)允许用户在未登录远程主机的情况下,在远程主机上执行程序或命令
语法格式如下:
ssh 服务器的IP地址或主机名 命令
实例 登录远程主机192.168.100.10,在远程主机192.168.100.10中,运行“ls -l
”命令。
[root@localhost ~]# ssh sheriff@192.168.100.10 ls -l
2、以sftp命令与远程主机传输文件
sftp命令使用时的语法如下:
sftp账号名@服务器的IP地址或主机名
实例 使用sheriff账号登录到主机192.168.100.10的OpenSSH服务器:
[root@localhost ~]# sftp sheriff 192.168.100.10
(1)使用sftp命令将本地文件上传到远程主机
语法格式如下:
sftp>put 本地文件名 远程文件名
实例 假设本地计算机当差目录下,包含一个名为“local_1”的文件,使用sftp命令将其传送到远程主机192.168.100.10中,然后以“/home/sheriff/local_1”的名称保存,如图所示。
(2)使用sftp命令将远程主机上的文下载到本地主机
语法格式如下:
sftp>get远程文件名 本地文件名
实例 假设远程主机192.168.100.10的“/home/sheriff/”目录下,包含一个名为“remote_1”的文件,使用sftp命令下载该文件到本地主机当前目录,并以“remote_1”的名称保存。
sftp> get /home/sheriff/ remote_1 local_1