SylixOS下SSH和SFTP连接

简要

基于网络的连接(telnet,ftp)方便高效,但其是基于明文的通信,容易被窃取、篡改和攻击,存在网络安全问题,尤其在进行远程访问时,穿过复杂未知的公网环境非常危险,为此各种加密网络协议,通过加密加密算法保证内容的保密性和安全性。常用的加密网络协议有:ssh,sftp,scp,https 等。

特别说明,加密网络通信功能需要在内核 V3.0.0 之后才支持,且是以中间件方式提供而不是内核自带,需要用 IDE V6.0 才能自动生成。

编译部署加密功能组件

SylixOS中的加密通信服务不是由内核提供而是通过功能组件提供的,创建base时需要添加openssl,openssh和zlib三个相关组件,编译并部署到目标设备中。
SylixOS下SSH和SFTP连接_第1张图片

SylixOS下SSH和SFTP连接_第2张图片

这几个库最终提供了SSH,SFTP和SCP等一组加密通信功能。

初始化本机密钥

  1. 执行/usr/bin/ssh-keygen,生成root用户rsa密钥对。执行过程会有一些配置请求,不进行特殊配置的话一直回车即可,默认配置完成后将在/root/.ssh/下生成公钥与私钥。然后拷贝公钥并命名为authorized_keys。如果需要为其他用户提供加密通信服务,需要在用户主目录下执行相同命令,以生成该用户的密钥对。
[root@sylixos:/root]# /usr/bin/ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): #可输入秘钥存储路径,直接回车则使用括号中的默认路径
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):#可选择为rsa密钥对附加密码,直接回车则无密码
Enter same passphrase again:#再次输入密码以确认
Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:xw+73n/PIV/ge2tDe2pz2/Shg4mi67KikesEhSEmgFY root@sylixos
The key's randomart image is:
+---[RSA 3072]----+
|B..E             |
|=+               |
|o .              |
| .       .       |
|.       S +   .  |
|..       . + . o |
|o.        o +.oo+|
|.+ .   . . = .*B@|
|=...++o ..o .+*X@|
+----[SHA256]-----+
[root@sylixos:/root]#
[root@sylixos:/root]# ls .ssh/ #查看生成的SRA密钥对
id_rsa  id_rsa.pub
[root@sylixos:/root]#
[root@sylixos:/root]# cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys  #复制公钥以和程序预期一致
copy complete. size:566(Bytes) time:0(s) speed:566(Bps)
[root@sylixos:/root]# ls .ssh/
authorized_keys  id_rsa  id_rsa.pub
[root@sylixos:/root]#
  1. 执行/usr/bin/ssh-keygen -A,将在/etc/ssh目录下生成系统默认密钥。
[root@sylixos:/root]# /usr/bin/ssh-keygen -A
ssh-keygen: generating new host keys: RSA #密钥生成过程执行较久,请耐心等待
ECDSA ED25519
[root@sylixos:/root]# ls /etc/ssh/
ssh_config              ssh_host_ed25519_key      ssh_host_rsa_key.pub
ssh_host_ecdsa_key      ssh_host_ed25519_key.pub  sshd_config
ssh_host_ecdsa_key.pub  ssh_host_rsa_key
[root@sylixos:/root]#

以上步骤执行完毕,系统就具备加密通信的条件了。

SSH 服务功能

为SylixOS系统部署加密通信组件并初始化本机密钥后,ssh服务默认是没有上电开启的,需要手动启动。执行/usr/sbin/sshd程序即可启动ssh服务,注意必须使用绝对路径。需要开启自启动的话,将该命令加入启动脚本/etc/startup.sh中即可。
ps命令查看有sshd进程则说明ssh服务启动成功。

[root@sylixos:/root]# /usr/sbin/sshd
[root@sylixos:/root]# ps

      NAME            FATHER      STAT  PID   GRP    MEMORY    UID   GID   USER
---------------- ---------------- ---- ----- ----- ---------- ----- ----- ------
kernel           <orphan>         R        0     0        0KB     0     0 root
sshd             <orphan>         R       16    16     6564KB     0     0 root

total vprocess: 2
[root@sylixos:/root]# 

然后就可以通过各种标准客户端通过ssh来登录目标系统了。
RealEvo IDE通过ssh连接设备。
SylixOS下SSH和SFTP连接_第3张图片

SylixOS下SSH和SFTP连接_第4张图片

SecureCRT下ssh登录效果如下:
SylixOS下SSH和SFTP连接_第5张图片

SylixOS下SSH和SFTP连接_第6张图片

SylixOS下SSH和SFTP连接_第7张图片

Windows下powershell登录效果如下:
SylixOS下SSH和SFTP连接_第8张图片

使用SFTP进行文件传输

RealEvo IDE下通过SFTP连接设备效果。注意,如果ide下创建设备链接使用的是加密模式,则所有和设备间的通信,包括命令行,文件传输,调试,系统监控等都是使用的加密模式。
SylixOS下SSH和SFTP连接_第9张图片

filezilla软件下进行SFTP传输效果。
SylixOS下SSH和SFTP连接_第10张图片

SSH客户端功能

scp功能

你可能感兴趣的:(SylixOS基础操作,SylixOS,ssh,sftp)