概述
本示例通过windows10的powershell脚本实现自定义字段登录华为交换机,过程中涉及到rsa(华为交换机需求)的16进制转换、powershell自定义函数、华为交换机中用户相关配置等。具体实现请参考下列详述步骤。
交换机配置ssh登录用户
[HUAWEI] stelnet server enable //使能设备的STelnet服务器功能[HUAWEI] ssh user admin123 //创建SSH用户admin123[HUAWEI] ssh user admin123 service-type stelnet //配置SSH用户的服务方式为STelnet[HUAWEI] ssh user admin123 authentication-type rsa //配置SSH用户认证方式为rsa[HUAWEI] quit<HUAWEI> save<HUAWEI> quit
公钥转换为16进制备用
注:本案例是Win10客户端通过OpenSSH生成的rsa密钥对
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
####这里切换到key所在目录并将youkeyname.pub文件输出为16进制文件。如果powershell不支持命令请将文件上传至linux上进行处理PS C:\Users\> cd .sshPS 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 48818902 81810099 960E6415 070C6130 BAD4C9EC925CD079 3C853F3F 0E5215DB C5486936 4AA0D48D594850E0 CD3DA682 36474916 C9658F96 B02AF339E7B2065B C878F6EE 2AA1CEEF C70A116A 58C5C3691D44D72B E52E6EEE F98F8EBE FB9DDD87 2B65D7471D2E8E6D 9BA35FE1 5101D638 BF16DECD B4BF3E72571EFCCF FD48F2F2 A6359EB8 47533302 03010001PS C:\Users\.ssh>
登录交换机为用户绑定公钥
[HUAWEI] ssh user admin123 authentication-type rsa //配置SSH用户认证方式为rsa[HUAWEI] rsa peer-public-key strkey001 encoding-type openssh //配置rsa公共密钥编码格式,并进入rsa公共密钥视图,strkey001为公共密钥名称Enter "rsa public key" view, return system view with "peer-public-key end".[HUAWEIecc-public-key] public-key-code begin //进入公共密钥编辑视图Enter "rsa key code" view, return last view with "public-key-code end".[HUAWEI-dsa-key-code] 308188 //拷贝复制客户端的公钥,为刚才备用的十六进制字符串[HUAWEI-dsa-key-code] 028180[HUAWEI-dsa-key-code] 818902 81810099 960E6415 070C6130 BAD4C9EC[HUAWEI-dsa-key-code] 925CD079 3C853F3F 0E5215DB C5486936 4AA0D48D[HUAWEI-dsa-key-code] 411B8B73 3CDD494A 236F35AB 9BBFE19A 7336150B[HUAWEI-dsa-key-code] 40A35DE6 2C6A82D7 5C5F2C36 67FBC275 2DF7E4C5[HUAWEI-dsa-key-code] 1987178B 8C364D57 DD0AA24A A0C2F87F 474C7931[HUAWEI-ecc-key-code] A9F7E8FE E0D5A1B5 092F7112 660BD153 7FB7D5B2[HUAWEI-ecc-key-code] 171896FB 1FFC38CD[HUAWEI-ecc-key-code] 0203[HUAWEI-ecc-key-code] 010001[HUAWEI-ecc-key-code] public-key-code end //退回到公共密钥视图[HUAWEI-ecc-public-key] peer-public-key end //退回到系统视图[HUAWEI] ssh user admin123 assign rsa-key strkey001 //为用户admin123分配一个已经存在的公钥strkey001[HUAWEI] dis ssh user-information //查看admin123用户的配置信息User 1:User Name : admin123Authentication-type : rsaUser-public-key-name : strkey001User-public-key-type : rsaSftp-directory : -Service-type : stelnetAuthorization-cmd : No//确保上述值正确[HUAWEI] quit<HUAWEI> save<HUAWEI> quit
本地通过密钥免密登录
本地编写powerhsell函数
function admin123{ssh admin123@10.15.11.254 -i .\.ssh\yourkeyname}
将函数添加到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


