配置设备作为SFTP客户端访问其他设备的文件
前置任务
在配置通过SFTP访问其他设备的文件之前,需完成以下任务:
- 当前设备和SSH服务器路由可达。
- 已获取SSH服务器的主机名或IP地址以及SSH用户信息。
- 如果服务器不是使用标准的端口号,则还需获取服务器端设置的端口号。
配置流程
通过SFTP访问其他设备文件的配置流程如表7-40所示。
序号 |
配置任务名称 |
配置任务说明 |
配置流程说明 |
---|---|---|---|
1 |
客户端源地址可以配置为源接口或源IP,达到安全校验的目的。 |
序号1、2、3无序操作,SFTP连接(序号4)建立后,可执行序号5的操作,最后断开连接(序号6)。 |
|
2 |
生成本地密钥对,然后将公钥配置到SSH服务器上。 本步骤仅在设备以RSA、DSA或ECC方式登录SSH服务器的时候执行,password方式登录SSH服务器则无需执行。 |
||
3 |
有两种配置方式:使能SSH客户端首次认证功能方式和SSH客户端为SSH服务器分配公钥方式,用户可选择其一进行配置。 |
||
4 |
- |
||
5 |
用户可以通过SFTP客户端管理SSH服务器上的目录和文件,以及查看SFTP客户端命令帮助。 |
||
6 |
- |
操作步骤
- (可选)配置SFTP客户端源地址
配置源地址需要选择设备上状态稳定的接口,如LoopBack接口。该配置简化了ACL规则和安全策略的配置,只要将ACL规则的源地址或目的地址指定为该地址,就可以屏蔽接口IP地址的差异以及接口状态的影响,实现对设备进出报文的过滤。
SFTP客户端配置的源地址必须为LoopBack地址或LoopBack接口。
表7-41 配置SFTP客户端源地址操作步骤
命令
说明
进入系统视图
system-view
-
配置SFTP客户端的源地址信息
sftp client-source { -a source-ip-address | -i interface-type interface-number }
缺省情况下,源地址为0.0.0.0。
配置的源地址为设备的LoopBack地址或LoopBack接口。
- 生成本地密钥对
此步骤仅在设备以RSA、DSA或ECC方式登录SSH服务器的时候执行,设备以password方式登录SSH服务器,则无需执行。
表7-42 生成本地密钥对操作步骤
命令
说明
进入系统视图
system-view
-
生成本地密钥对
rsa local-key-pair create、dsa local-key-pair create或ecc local-key-pair create
根据对端密钥的类型,三选一。
密钥对生成后,可以执行display rsa local-key-pair public、display dsa local-key-pair public或display ecc local-key-pair public命令查看RSA本地密钥对、DSA本地密钥对或ECC密钥对中的公钥部分信息,然后将公钥配置到SSH服务器上。
- 配置设备首次连接SSH服务器的方式
作为客户端的设备首次连接SSH服务器时,因为客户端还没有保存过SSH服务器的公钥,无法对SSH服务器有效性进行检查,这样会导致连接不成功。可以通过下面两种方式来解决:
- 使能SSH客户端首次认证功能方式:不对SSH服务器的公钥进行有效性检查,确保首次连接成功。成功连接后,系统将自动分配并保存公钥,为下次连接时认证使用。具体配置见表7-43。此种方式配置简单。
- SSH客户端配置服务器公钥方式:将服务器端产生的公钥直接保存至客户端,保证在首次连接时SSH服务器有效性检查能够通过。具体配置见表7-44。此种方式配置较复杂,但比上面那种方式安全性更高。
表7-43 使能SSH客户端首次认证功能操作步骤
命令
说明
进入系统视图
system-view
-
使能SSH客户端首次认证功能
ssh client first-time enable
缺省情况下,SSH客户端首次认证功能是关闭的。
表7-44 SSH客户端为SSH服务器分配RSA、DSA或ECC公钥方式操作步骤
命令
说明
进入系统视图
system-view
-
进入RSA、DSA或ECC公共密钥视图
rsa peer-public-key key-name [ encoding-type { der | openssh | pem } ]
、
dsa peer-public-key key-name encoding-type { der | openssh | pem }
或
ecc peer-public-key key-name encoding-type { der | openssh | pem }
根据生成的密钥类型,三选一。
进入公共密钥编辑视图
public-key-code begin
-
编辑公共密钥
hex-data
- 键入的公共密钥必须是按公钥格式编码的十六进制字符串,由SSH服务器随机生成。
- 进入公共密钥编辑视图后,即可将服务器上产生的RSA、DSA或ECC公钥输入到客户端。
退出公共密钥编辑视图
public-key-code end
- 如果输入的密钥编码hex-data不合法,执行本步骤后,将无法生成密钥。
- 如果指定的密钥key-name已经被删除,再执行本步骤时,系统会提示:密钥已经不存在,此时直接退到系统视图。
退出公共密钥视图,回到系统视图
peer-public-key end
-
为SSH服务器绑定RSA、DSA或ECC公钥
ssh client servername assign { rsa-key | dsa-key | ecc-key } keyname
如果SSH客户端保存的SSH服务器公钥失效,执行命令undo ssh client servername assign { rsa-key | dsa-key | ecc-key },取消SSH服务器与RSA、DSA或ECC公钥的绑定关系,再执行本命令,为SSH服务器重新分配RSA、DSA或ECC公钥。
- 使用SFTP命令连接其他设备
SFTP客户端连接命令跟STelnet客户端连接命令很相似,支持访问SSH服务器时携带源地址,选择密钥交换算法、加密算法和HMAC算法,以及设置keepalive功能。
表7-45 使用SFTP命令连接其他设备操作步骤
命令
说明
进入系统视图
system-view
-
(可选)配置SSH客户端的密钥交换算法列表
ssh client key-exchange { dh_group14_sha256 | dh_group15_sha512 | dh_group16_sha512 | dh_group_exchange_sha256 }*
缺省情况下,SSH客户端支持所有的密钥交换算法。
系统软件中不包含dh_group_exchange_sha1、dh_group14_sha1和dh_group1_sha1参数,如需使用,需要安装WEAKEA插件,但是该算法安全性低。为了保证更好的安全性,建议使用其它算法。
您可以通过华为官网(企业、运营商)搜索“插件使用指南”,请根据交换机型号及软件版本选择相应的《插件使用指南》。如无权限,请联系技术支持人员。
(可选)配置SSH客户端的加密算法列表
ssh client cipher { aes128_ctr | aes256_ctr } *
缺省情况下,SSH客户端支持所有加密算法。
系统软件中不包含aes256_cbc、aes128_cbc、3des_cbc和des_cbc参数,如需使用,需要安装WEAKEA插件,但是该算法安全性低。为了保证更好的安全性,建议配置aes256_ctr或aes128_ctr参数。
您可以通过华为官网(企业、运营商)搜索“插件使用指南”,请根据交换机型号及软件版本选择相应的《插件使用指南》。如无权限,请联系技术支持人员。
(可选)配置SSH客户端上的校验算法列表
ssh client hmac sha2_256
缺省情况下,不安装WEAKEA插件,SSH服务器只支持sha2_256校验算法,安装WEAKEA插件后,增加支持sha2_256_96、sha1、sha1_96、md5和md5_96校验算法。
系统软件中不包含sha2_256_96、sha1、sha1_96、md5和md5_96参数,如需使用,需要安装WEAKEA插件,但是该算法安全性低。为了保证更好的安全性,建议配置sha2_256参数。
您可以通过华为官网(企业、运营商)搜索“插件使用指南”,请根据交换机型号及软件版本选择相应的《插件使用指南》。如无权限,请联系技术支持人员。
IPv4地址
sftp [ -a source-address | -i interface-type interface-number ] host-ip [ port ] [ [ public-net | -vpn-instance vpn-instance-name ] | identity-key { dsa | rsa | ecc } | user-identity-key { rsa | dsa | ecc } | prefer_kex prefer_key-exchange | prefer_ctos_cipher prefer_ctos_cipher | prefer_stoc_cipher prefer_stoc_cipher | prefer_ctos_hmac prefer_ctos_hmac | prefer_stoc_hmac prefer_stoc_hmac| -ki aliveinterval ] | [ -kc alivecountmax] *
根据地址类型选其一。
大多数情况下,该命令可以只指定IP地址,而不需要指定其他可选项。
须知:为了保证更好的安全性,建议您使用更安全的aes128或aes256算法作为客户端到服务器端的认证算法。
IPv6地址
sftp ipv6 [ -a source-address ] host-ipv6 [ -oi interface-type interface-number ] [ port ] [ identity-key { dsa | rsa | ecc } | user-identity-key { rsa | dsa | ecc } | -vpn-instance vpn-instance-name | prefer_kex prefer_key-exchange | prefer_ctos_cipher prefer_ctos_cipher | prefer_stoc_cipher prefer_stoc_cipher | prefer_ctos_hmac prefer_ctos_hmac | prefer_stoc_hmac prefer_stoc_hmac | -ki aliveinterval | -kc alivecountmax ] *
例如:[HUAWEI] sftp 10.137.217.201
连接成功后,屏幕会显示sftp-client>,此时已经进入了SFTP客户端视图。
- 通过SFTP命令进行文件操作
当SFTP客户端登录到SSH服务器之后,用户可以在SFTP客户端进行如表7-46所示的操作。
以下各操作没有严格顺序,可根据需求选择一种或多种操作项目。
在SFTP客户端视图下,文件操作命令不支持联想功能,必须手动输入完整的命令,否则会提示是不支持的命令。
由于文件系统对根目录下的文件个数有限制,当根目录中文件个数大于50个时,继续在根目录中创建文件可能会失败。
表7-46 通过SFTP文件操作命令进行文件操作操作项目
命令
说明
改变用户的当前工作目录
cd [ remote-directory ]
-
改变用户的工作目录为当前工作目录的上一级目录
cdup
-
显示用户的当前工作目录
pwd
-
显示指定目录下的文件列表
dir/ls [ -l | -a ] [ remote-directory ]
dir与ls执行的效果是一样的。
删除服务器上目录
rmdir remote-directory &<1-10>
一次最多可以删除十个目录。
使用该命令删除目录时,目录中不能有文件,否则会删除失败。
在服务器上创建新目录
mkdir remote-directory
-
改变服务器上指定的文件的名字
rename old-name new-name
-
下载远程服务器上的文件
get remote-filename [ local-filename ]
-
上传本地文件到远程服务器
put local-filename [ remote-filename ]
-
删除服务器上文件
remove remote-filename &<1-10>
一次最多可以删除十个文件。
SFTP客户端命令帮助
help [ all | command-name ]
-
用户也可以在系统视图下执行如下命令下载服务器上的文件或者上传本地文件到远程服务器中:
- IPv4地址:sftp client-transfile { get | put } [ -a source-address | -i interface-type interface-number ] host-ip host-ipv4 [ port ] [ [ public-net | -vpn-instance vpn-instance-name ] | prefer_kex prefer_key-exchange | identity-key { rsa | dsa | ecc } | prefer_ctos_cipher prefer_ctos_cipher | prefer_stoc_cipher prefer_stoc_cipher | prefer_ctos_hmac prefer_ctos_hmac | prefer_stoc_hmac prefer_stoc_hmac | -ki aliveinterval | -kc alivecountmax ] * username user-name password password sourcefile source-file [ destination destination ]
- IPv6地址:sftp client-transfile { get | put } ipv6 [ -a source-address ] host-ip host-ipv6 [ -oi interface-type interface-number ] [ port ] [ -vpn-instance vpn-instance-name | prefer_kex prefer_key-exchange | identity-key { rsa | dsa | ecc } | prefer_ctos_cipher prefer_ctos_cipher | prefer_stoc_cipher prefer_stoc_cipher | prefer_ctos_hmac prefer_ctos_hmac | prefer_stoc_hmac prefer_stoc_hmac | -ki aliveinterval | -kc alivecountmax ] * username user-name password password sourcefile source-file [ destination destination ]
- 断开与SFTP服务器的连接
操作步骤
命令
说明
断开与SFTP服务器的连接
quit
-