配置设备作为SCP客户端访问其他设备的文件
SCP是SSH协议的一部分,是基于SSH协议的远程文件拷贝技术,配置设备作为SCP客户端,客户端和服务器之间经过协商,建立安全连接的同时进行文件的上传和下载操作。
前置任务
在配置通过SCP访问其他设备的文件之前,需完成以下任务:
- 当前设备和SSH服务器路由可达。
- 已获取SSH服务器的主机名或IP地址以及SSH用户信息。
- 如果服务器不是使用标准的端口号,则还需获取服务器端设置的端口号。
为了保证更好的安全性,建议不要使用长度小于2048位的RSA认证方式。
配置流程
通过SCP访问其他设备文件的配置流程如表7-47所示。
操作步骤
- (可选)配置SCP客户端源地址
表7-48 (可选)配置SCP客户端源地址
操作步骤
命令
说明
进入系统视图
system-view
-
配置SCP客户端的源地址信息
scp client-source { -a source-ip-address [ public-net | -vpn-instance vpn-instance-name ] | -i interface-type interface-number }
缺省情况下,SCP客户端的源IP地址为0.0.0.0。
当使用-i指定源接口为逻辑接口时,必须保证已经成功创建该逻辑接口。
提交配置
commit
-
- 生成本地密钥对
此步骤仅在设备以RSA、DSA或ECC方式登录SSH服务器的时候执行,设备以password方式登录SSH服务器,则无需执行。
表7-49 生成本地密钥对操作步骤
命令
说明
进入系统视图
system-view
-
生成本地密钥对或分配PKI证书
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命令查看本地密钥对中的公钥部分信息。
提交配置
commit
-
- 配置设备首次连接SSH服务器的方式
作为客户端的设备首次连接SSH服务器时,因为客户端还没有保存过SSH服务器的公钥,无法对SSH服务器有效性进行检查,这样会导致连接不成功。可以通过下面两种方式来解决:
- 使能SSH客户端首次登录功能方式:不对SSH服务器的公钥进行有效性检查,确保首次连接成功。成功连接后,系统将自动分配并保存公钥,为下次连接时认证使用。具体配置见表7-50。此种方式配置简单。
- SSH客户端配置服务器公钥方式:将服务器端产生的公钥直接保存至客户端,保证在首次连接时SSH服务器有效性检查能够通过。具体配置见表7-51。此种方式配置较复杂,但比上面那种方式安全性更高。
表7-50 使能SSH客户端首次登录功能操作步骤
命令
说明
进入系统视图
system-view
-
使能SSH客户端首次登录功能
ssh client first-time enable
缺省情况下,SSH客户端首次登录功能是关闭的。
提交配置
commit
-
表7-51 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 ]
根据生成的密钥类型,三选一。
进入公共密钥编辑视图
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 server-ip-address assign { rsa-key | dsa-key | ecc-key } key-name
如果SSH客户端保存的SSH服务器公钥失效,执行命令undo ssh client server-ip-address assign { rsa-key | dsa-key | ecc-key },取消SSH服务器与RSA、DSA或ECC公钥的绑定关系,再执行本命令,为SSH服务器重新分配RSA、DSA或ECC公钥。
提交配置
commit
-
- 使用SCP命令连接其他设备
SCP与SFTP方式不同,当SCP命令执行后,与服务器建立安全连接,客户端可以直接上传文件至服务器或从服务器下载文件至本地。
表7-52 使用SCP命令连接其他设备操作步骤
命令
说明
进入系统视图
system-view
-
(可选)配置SSH客户端的密钥交换算法列表
ssh client key-exchange { dh_group14_sha1 | dh_group1_sha1 | dh_group_exchange_sha1 | dh_group_exchange_sha256 | ecdh_sha2_nistp256 | ecdh_sha2_nistp384 | ecdh_sha2_nistp521 | sm2_kep } *
缺省情况下,SSH客户端使用dh_group_exchange_sha256密钥交换算法。
在客户端与服务器协商的过程中,二者之间对报文传输的密钥交换算法进行协商,服务器端根据客户端发过来的密钥交换算法列表与自身的密钥交换算法列表进行对比,选择客户端与自己相匹配的第一个密钥交换算法作为报文传输的密钥交换算法,如果客户端的密钥交换算法列表与服务器端的密钥交换算法列表没有相匹配的算法,则协商失败。
(可选)配置SSH客户端的加密算法列表
ssh client cipher { des_cbc | 3des_cbc | aes128_cbc | aes256_cbc | aes128_ctr | aes256_ctr | arcfour128 | arcfour256 | aes192_cbc | aes192_ctr | aes128_gcm | aes256_gcm } *
缺省情况下,SSH客户端使用AES256_GCM、AES128_GCM、AES256_CTR、AES192_CTR和AES128_CTR加密算法。
(可选)配置SSH客户端上的校验算法列表
ssh client hmac { md5 | md5_96 | sha1 | sha1_96 | sha2_256 | sha2_256_96 | sha2_512 } *
缺省情况下,SSH客户端HMAC认证算法为SHA2_256和SHA2_512。
IPv4地址
scp [ -a source-ip-address | -i interface-type interface-number ] [ -force-receive-pubkey ] [ -port port-number | { public-net | vpn-instance vpn-instance-name } | -c | -cipher cipher-type | -prefer-kex kex-type | -r | identity-key { dsa | ecc | rsa | pki } | user-identity-key { dsa | ecc | rsa | pki } ] * source-filename destination-filename
根据地址类型选其一。
如果使用参数-i interface-type interface-number指定源接口,则不支持public-net和vpn-instance vpn-instance-name参数。
IPv6地址
scp ipv6 [ -a source-ipv6-address | -oi interface-type interface-number ] [ public-net | vpn-instance vpn-instance-name ] [ -force-receive-pubkey ] [ -port port-number | -c | -cipher cipher-type | -prefer-kex kex-type | -r | identity-key { dsa | ecc | rsa | pki } | user-identity-key { dsa | ecc | rsa | pki } ] * source-filename destination-filename