文章目录
常见的远程登录方式有telnet、ssh和密钥3种方式,在实际生产环境中,为了确保数据的传输安全,不推荐使用telnet。下面对3种方式分别进行测试。
system
aaa
local-user telnet001 password cipher Huawei
local-user telnet001 privilege level 15
local-user telnet001 service-type telnet
quit
AAA:3A认证,即:认证(Authentication);授权(Authorization);计帐(Accounting)。
cipher参数将密码在配置中加密显示。
privilege权限范围0-15,15代表所有权限,详细信息如下图。

user-interface vty 0 4
authentication-mode aaa
protocol inbound telnet
“0 4”代表允许同时访问的用户数,从0到4共5个。
开启wireshark抓包,用电脑远程telnet登录设备,观察现象。
telnet x.x.x.x
# 进入登录界面
Username:telnet001
Password: //密码为aaa中设置的用户对应密码,此处不显示。

在wireshark中筛选telnet数据包,选择其中一个数据包,右键-追踪流-TCP流。

可以直接看到账号密码,所以使用telnet登录设备很容易泄露密码,不推荐使用。

system
aaa
local-user ssh001 password cipher Huawei
local-user ssh001 privilege level 15
local-user ssh001 service-type ssh
quit
stelnet server enable
华为的STelnet即SSH,叫法不同而已。
路由器中可能不支持此命令,默认开启。
ssh user ssh001 service-type stelnet
ssh user ssh001 authentication-type password
user-interface vty 0 4
authentication-mode aaa
protocol inbound ssh
cmd中可以使用ssh ssh001@x.x.x.x 进行访问,可能会因为缺少某些协议无法访问,可以使用第三方ssh客户端访问,下面以putty为例。
① 输入IP地址,点击Open连接设备。

② 弹出密钥提示框,点击是。

③ 输入账号密码登录。

④ wireshark抓包可以看到数据全部使用了SSHv2进行了加密,通过追踪流看到的也是加密过后的乱码,无法获取到原始数据,保证了数据安全。

华为设备支持RSA和DSA两种非对称密钥,此处使用RSA。
system
rsa local-key-pair create
......
......
Input the bits in the modulus[default = 2048]:2048 //输入2048开始生成密钥
ssh user rsa001
因为使用的是公私钥进行登录,所以只创建ssh用户,无需在aaa中创建。
ssh user rsa001 authentication-type rsa
可以直接使用此命令创建用户,系统会提示Info: Succeeded in adding a new SSH user.
ssh user ssh001 service-type stelnet
ssh user ssh001 authentication-type rsa
stelnet server enable
user-interface vty 0 4
authentication-mode aaa
protocol inbound ssh
常见的SSH工具创建密钥对以及通过RSA密钥登录的方式不尽相同,下面对常见的SSH工具分别进行说明。
① 打开puttygen.exe,选择RSA,点击Generate开始生成密钥对。

② 根据提示,鼠标在进度条区域晃动。

③ 生成密钥后,点击Save private key保存私钥文件。

④ 弹出确认框,点击是,选择位置,保存私钥为putty.ppk文件。

⑤ 点击Save public key,选择位置,保存公钥为putty.pub文件。
① 点击工具-创建公钥

② 在密钥生成向导中,点击下一步。

③ 密钥类型选择RSA,点击下一步。

④ 通行短语为私钥的密码,此处不设置,直接下一步。

⑤ 密钥长度填2048,点击下一步。

⑥ 生成密钥后,点击下一步。

⑦ 密钥格式根据需要选择,保持默认也可以,选择密钥的存储位置,点击完成。

⑧ 此处选择否。

① 点击工具-新建用户密钥生成向导。

② 密钥类型选择RSA,密钥长度选择2048,点击下一步。

③ 生成公钥对,点击下一步。

④ 填写密钥名称和密码(可选),点击完成。

⑤ 点击是完成。

⑥ 选择生成的密钥,点击属性。此界面也可通过工具-用户密钥管理者打开。

⑦ 公钥格式选择SSH2 - IETF SECSH,点击保存为文件。

⑧ 选择保存位置,将公钥保存为xshell.pub。
调用的是puttygen,操作方法与putty一致,点击Tools-MobaKeyGen。


打开ssh key convert软件,选择刚才导出的公钥文件Identify.pub,点击转换,生成交换机支持的16进制RSA公钥。
PS: SecureCRT和Xshell生成的公钥文件在转换时会出现未响应退出的问题,需要将公钥文件头部参数的内容加上引号。



SecureCRT和XShell可以生成OpenSSH格式的公钥文件,在Linux中使用ssh-keygen工具转换为16进制公钥。
① 导出OpenSSH格式公钥
SecureCRT
点击工具-转换私钥为OpenSSH格式。

选择并打开私钥文件Identity。

保存为OpenSSH私钥文件。

会生成OpenSSH格式的公私钥文件。

XShell
点击工具-用户密钥管理者。

选择生成的密钥,点击属性。此界面也可通过工具-用户密钥管理者打开。

公钥格式选择SSH2 - OpenSSH,点击保存为文件。

② 转换为16进制公钥
将OpenSSH格式的公钥文件上传到Linux,执行下面的命令,其中/root/Desktop/pri_openssh.pub为公钥文件的绝对路径,根据具体的路径进行修改。
ssh-keygen -e -m pem -f /root/Desktop/pri_openssh.pub | egrep -v "BEGIN|END" | base64 -d | od -t x1 -An -w4 | tr 'a-f' 'A-F' | tr -d ' ' | fmt -w 48
上面为markdown代码块内容,生成PDF后如无法看到全部命令,可复制下面的内容。
ssh-keygen -e -m pem -f /root/Desktop/pri_openssh.pub | egrep -v “BEGIN|END” | base64 -d | od -t x1 -An -w4 | tr ‘a-f’ ‘A-F’ | tr -d ’ ’ | fmt -w 48

① 导入公钥
# 配置命令如下
[Huawei]rsa peer-public-key Putty001
Enter "RSA public key" view, return system view with "peer-public-key end".
[Huawei-rsa-public-key]public-key-code begin
Enter "RSA key code" view, return last view with "public-key-code end".
[Huawei-rsa-key-code]3082010A 02820101 00A0DD31 F730852E CBC347F0 157569A9
[Huawei-rsa-key-code]E238924E 2DF5416C 46CF62E8 272EB23A 67534A10 A24A7AC5
[Huawei-rsa-key-code]FD844166 13BFD58D D66BBFD5 C72EC6A8 43195655 1852EC50
[Huawei-rsa-key-code]3C954641 59ACEEC1 5E381C7A B4A4BFCB B16127AD 4A2DEA93
[Huawei-rsa-key-code]9164FED0 FE3E9D53 E7398CE9 05E05117 B3AAC8D1 8886C864
[Huawei-rsa-key-code]6B4F7752 3064C760 6F0024C2 BCB8060B 0464B782 2F13840A
[Huawei-rsa-key-code]E57EFCD0 EEB8FEFD 2C5A8811 59645BAF DBBB83A7 B7906208
[Huawei-rsa-key-code]1BB5F789 BF88206B 35CDD8F5 408239B4 6373423D 2E35ABA8
[Huawei-rsa-key-code]29738F9E 2FDE32A7 C7426CFF 89ECB2BD 1564D63C 0FE35C42
[Huawei-rsa-key-code]D7909360 152F16D9 F64BD198 F148EA32 F4C36D0B DE13969A
[Huawei-rsa-key-code]FC85ADE0 C847FE73 8F96A0EB C89A2959 162F364A 173A8885
[Huawei-rsa-key-code]9D020301 0001
[Huawei-rsa-key-code]public-key-code end
[Huawei-rsa-public-key]peer-public-key end
# 配置中显示格式略有不同
[Huawei]dis cu | be rsa peer
rsa peer-public-key Putty001
public-key-code begin
30820109
02820100
A0DD31F7 30852ECB C347F015 7569A9E2 38924E2D F5416C46 CF62E827 2EB23A67
534A10A2 4A7AC5FD 84416613 BFD58DD6 6BBFD5C7 2EC6A843 19565518 52EC503C
95464159 ACEEC15E 381C7AB4 A4BFCBB1 6127AD4A 2DEA9391 64FED0FE 3E9D53E7
398CE905 E05117B3 AAC8D188 86C8646B 4F775230 64C7606F 0024C2BC B8060B04
64B7822F 13840AE5 7EFCD0EE B8FEFD2C 5A881159 645BAFDB BB83A7B7 9062081B
B5F789BF 88206B35 CDD8F540 8239B463 73423D2E 35ABA829 738F9E2F DE32A7C7
426CFF89 ECB2BD15 64D63C0F E35C42D7 90936015 2F16D9F6 4BD198F1 48EA32F4
C36D0BDE 13969AFC 85ADE0C8 47FE738F 96A0EBC8 9A295916 2F364A17 3A88859D
0203
010001
public-key-code end
peer-public-key end
② 为SSH用户rsa001绑定公钥Putty001
ssh user rsa001 assign rsa-key Putty001
Putty的版本最好与puttygen的版本一致,否则有可能会报错无法登录。
① 输入IP地址。

② Connection-SSH中SSH版本选择2,新版本默认为SSH2。

③ Connection-SSH-Auth中,选择私钥文件,点击Open。

④ 输入用户名即可直接登录。

① 打开快速连接,输入IP地址和用户名,选择公钥,点击属性。

② 选择公钥文件,点击确定,返回快速连接界面,点击连接。


① 输入IP地址回车,弹出登录框,输入用户名。

② 选择对应的密钥,输入密码(如果有),点击确定。


① 点击Session新建会话。

② 选择SSH,输入IP地址,在Advanced SSH settings中勾选Use private key并选择对应的私钥文件,点击OK。

③ 输入用户名后即可正常登录。

抓包可以看到数据同样被加密。

链接:https://pan.baidu.com/s/1v1P8KRLSPXukodheyVkX6Q?pwd=ijc5
提取码:ijc5

Rails2.3可以选择随时使用RouteSet#add_configuration_file添加更多路由。是否可以在Rails3项目中做同样的事情? 最佳答案 在config/application.rb中:config.paths.config.routes在Rails3.2(也可能是Rails3.1)中,使用:config.paths["config/routes"] 关于ruby-on-rails-Rails3中的多个路由文件,我们在StackOverflow上找到一个类似的问题
我尝试使用不同的ssh_options在同一阶段运行capistranov.3任务。我的production.rb说:set:stage,:productionset:user,'deploy'set:ssh_options,{user:'deploy'}通过此配置,capistrano与用户deploy连接,这对于其余的任务是正确的。但是我需要将它连接到服务器中配置良好的an_other_user以完成一项特定任务。然后我的食谱说:...taskswithoriginaluser...task:my_task_with_an_other_userdoset:user,'an_othe
我没有找到太多关于如何执行此操作的信息,尽管有很多关于如何使用像这样的redirect_to将参数传递给重定向的建议:action=>'something',:controller=>'something'在我的应用程序中,我在路由文件中有以下内容match'profile'=>'User#show'我的表演Action是这样的defshow@user=User.find(params[:user])@title=@user.first_nameend重定向发生在同一个用户Controller中,就像这样defregister@title="Registration"@user=Use
我真的为这个而疯狂。我一直在搜索答案并尝试我找到的所有内容,包括相关问题和stackoverflow上的答案,但仍然无法正常工作。我正在使用嵌套资源,但无法使表单正常工作。我总是遇到错误,例如没有路线匹配[PUT]"/galleries/1/photos"表格在这里:/galleries/1/photos/1/edit路线.rbresources:galleriesdoresources:photosendresources:galleriesresources:photos照片Controller.rbdefnew@gallery=Gallery.find(params[:galle
华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o
system-view进入系统视图quit退到系统视图sysname交换机命名vlan20创建vlan(进入vlan20)displayvlan显示vlanundovlan20删除vlan20displayvlan20显示vlan里的端口20Interfacee1/0/24进入端口24portlink-typeaccessvlan20把当前端口放入vlan20undoporte1/0/10删除当前VLAN端口10displaycurrent-configuration显示当前配置02配置交换机支持TELNETinterfacevlan1进入VLAN1ipaddress192.168.3.100
Rails中有没有一种方法可以提取与路由关联的HTTP动词?例如,给定这样的路线:将“users”匹配到:“users#show”,通过:[:get,:post]我能实现这样的目标吗?users_path.respond_to?(:get)(显然#respond_to不是正确的方法)我最接近的是通过执行以下操作,但它似乎并不令人满意。Rails.application.routes.routes.named_routes["users"].constraints[:request_method]#=>/^GET$/对于上下文,我有一个设置cookie然后执行redirect_to:ba
路由有如下代码:resources:orders,only:[:create],defaults:{format:'json'}resources:users,only:[:create,:update],defaults:{format:'json'}resources:delivery_types,only:[:index],defaults:{format:'json'}resources:time_corrections,only:[:index],defaults:{format:'json'}是否可以使用1个字符串为所有资源设置默认格式,每行不带“默认值”散列?谢谢。
在previousquestion中我想出了如何在多个服务器上启动经过密码验证的sshsession来运行单个命令。现在我需要能够执行“sudo”命令。问题是,net-ssh-multi没有分配sudo需要运行的伪终端(pty),导致以下错误:[127.0.0.1:stderr]sudo:sorry,youmusthaveattytorunsudo根据documentation,可以通过调用channel对象的方法来分配伪终端,但是,以下代码不起作用:它会生成上面的“notty”错误:require'net/ssh'require'net/ssh/multi'Net::SSH::Mul
我正在使用rails3和cucumber,除了这个小问题,一切都很顺利GivenIamonthe"editautomobile"pageNoroutematches{:controller=>"automobiles",:action=>"edit"}(ActionController::RoutingError)现在路径在paths.rb中设置为edit_automobile_path在routes.rb中我有汽车作为资源,我搭建了它所以请告诉我我遗漏了什么,清楚地定义了路线并且匹配,因为我运行了rake路线并看到了路线。请指出正确的方向 最佳答案