概述

本示例通过windows10的powershell脚本实现自定义字段登录华为交换机,过程中涉及到rsa(华为交换机需求)的16进制转换、powershell自定义函数、华为交换机中用户相关配置等。具体实现请参考下列详述步骤。

交换机配置ssh登录用户

  1. [HUAWEI] stelnet server enable //使能设备的STelnet服务器功能
  2. [HUAWEI] ssh user admin123 //创建SSH用户admin123
  3. [HUAWEI] ssh user admin123 service-type stelnet //配置SSH用户的服务方式为STelnet
  4. [HUAWEI] ssh user admin123 authentication-type rsa //配置SSH用户认证方式为rsa
  5. [HUAWEI] quit
  6. <HUAWEI> save
  7. <HUAWEI> quit

公钥转换为16进制备用

注:本案例是Win10客户端通过OpenSSH生成的rsa密钥对

  1. PS C:\Users\> ssh-keygen -t rsa -b 1024 -f yourkeyname -C "备注" //生成密钥对,默认位置为~/.ssh

参数解释

-b   采用长度1024bit的密钥对,b=bits,最长4096 -t rsa 采用rsa加密方式,t=type -f 生成文件名,f=output_keyfiles -C 备注,C=comment

  1. ####这里切换到key所在目录并将youkeyname.pub文件输出为16进制文件。如果powershell不支持命令请将文件上传至linux上进行处理
  2. PS C:\Users\> cd .ssh
  3. PS C:\Users\.ssh> ssh-keygen -e -m pem -f ~/.ssh/yourkeyname.pub | egrep -v "BEGIN|END" | base64 -d | od -t x1 -An -w4 | tr 'a-f' 'A-F' | tr -d ' ' | fmt -w 48
  4. 818902 81810099 960E6415 070C6130 BAD4C9EC
  5. 925CD079 3C853F3F 0E5215DB C5486936 4AA0D48D
  6. 594850E0 CD3DA682 36474916 C9658F96 B02AF339
  7. E7B2065B C878F6EE 2AA1CEEF C70A116A 58C5C369
  8. 1D44D72B E52E6EEE F98F8EBE FB9DDD87 2B65D747
  9. 1D2E8E6D 9BA35FE1 5101D638 BF16DECD B4BF3E72
  10. 571EFCCF FD48F2F2 A6359EB8 47533302 03010001
  11. PS C:\Users\.ssh>

登录交换机为用户绑定公钥

  1. [HUAWEI] ssh user admin123 authentication-type rsa //配置SSH用户认证方式为rsa
  2. [HUAWEI] rsa peer-public-key strkey001 encoding-type openssh //配置rsa公共密钥编码格式,并进入rsa公共密钥视图,strkey001为公共密钥名称
  3. Enter "rsa public key" view, return system view with "peer-public-key end".
  4. [HUAWEIecc-public-key] public-key-code begin //进入公共密钥编辑视图
  5. Enter "rsa key code" view, return last view with "public-key-code end".
  6. [HUAWEI-dsa-key-code] 308188 //拷贝复制客户端的公钥,为刚才备用的十六进制字符串
  7. [HUAWEI-dsa-key-code] 028180
  8. [HUAWEI-dsa-key-code] 818902 81810099 960E6415 070C6130 BAD4C9EC
  9. [HUAWEI-dsa-key-code] 925CD079 3C853F3F 0E5215DB C5486936 4AA0D48D
  10. [HUAWEI-dsa-key-code] 411B8B73 3CDD494A 236F35AB 9BBFE19A 7336150B
  11. [HUAWEI-dsa-key-code] 40A35DE6 2C6A82D7 5C5F2C36 67FBC275 2DF7E4C5
  12. [HUAWEI-dsa-key-code] 1987178B 8C364D57 DD0AA24A A0C2F87F 474C7931
  13. [HUAWEI-ecc-key-code] A9F7E8FE E0D5A1B5 092F7112 660BD153 7FB7D5B2
  14. [HUAWEI-ecc-key-code] 171896FB 1FFC38CD
  15. [HUAWEI-ecc-key-code] 0203
  16. [HUAWEI-ecc-key-code] 010001
  17. [HUAWEI-ecc-key-code] public-key-code end //退回到公共密钥视图
  18. [HUAWEI-ecc-public-key] peer-public-key end //退回到系统视图
  19. [HUAWEI] ssh user admin123 assign rsa-key strkey001 //为用户admin123分配一个已经存在的公钥strkey001
  20. [HUAWEI] dis ssh user-information //查看admin123用户的配置信息
  21. User 1:
  22. User Name : admin123
  23. Authentication-type : rsa
  24. User-public-key-name : strkey001
  25. User-public-key-type : rsa
  26. Sftp-directory : -
  27. Service-type : stelnet
  28. Authorization-cmd : No
  29. //确保上述值正确
  30. [HUAWEI] quit
  31. <HUAWEI> save
  32. <HUAWEI> quit

本地通过密钥免密登录

本地编写powerhsell函数
  1. function admin123{
  2. ssh admin123@10.15.11.254 -i .\.ssh\yourkeyname
  3. }

将函数添加到Profiles开启自启
Description Path
All Users, All Hosts $PSHOME\Profile.ps1
All Users, Current Host $PSHOME\Microsoft.PowerShell_profile.ps1
Current User, All Hosts $Home\[My ]Documents\PowerShell\Profile.ps1
Current user, Current Host $Home\[My ]Documents\PowerShell\
Microsoft.PowerShell_profile.ps1

enjoy

win+R打开powershell后直接输入自定义函数admin123即可登录交换机,既安全又方便。

F&Q:

配置SSH登录后仍然提示需要提示密码输入,报错具体如下:
read_passphrase: can't open /dev/tty: No such file or directoryPassword:

这边可将登录用户的模式调整为all,即可解决:
ssh user admin123 authentication-type all
注:通过ssh -vvv * 登录时发现先要进行一次密码认证过后才能进行密钥的读取

参考

cnxiaol https://www.cnblogs.com/cnxiaol/p/11222153.html

about_Profiles(powershell配置文件,开机自启) https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_profiles?view=powershell-6

未标题-1.png
image.png
暴走小二官方群,欢迎来躁