====== Automatisierung mit event-action und Python und AOS Release 8 ======
In AOS Release 8 kann mit "event-action" eine Automatisierung erreicht werden.
===== Einstieg =====
==== Wo werden die Python Skripte abgelegt? ====
Switch-> pwd
/flash/python
In diesem Verzeichnis liegen bereits zwei Skripte **default_broker_vso.py** und **iec_config.py**, diese sollte man nicht ändern/löschen.
==== Welche Python Skripte werden bei welchen Traps ausgeführt? ====
Dies ist über das Kommando **show event-action** zu sehen.
Switch-> show event-action
Script Time Limit (seconds): 60
Type Name Script (/flash/python/...)
------+---------------------------------------+----------------------------------
trap alaDhcpVsoBrokerIpAddress default_broker_vso.py
==== Tipp: "snmp-trap absorption" abschalten ====
Zumindest während der Entwicklung empfehlen wir "snmp-trap absorption" abzuschalten. Standardmäßig werden SNMP-Traps für 15 Sekunden nach ihrem letzten Auftreten absorbiert (und damit startet auch kein Skript).
Switch-> snmp-trap absorption disable
Switch-> show snmp-trap config
Absorption service : disabled
Traps to WebView : enabled
id trap name family absorption admin-state
--+------------------------------------+---------------+------------+-------------
0 coldStart chassis 15 seconds enable
1 warmStart chassis 15 seconds enable
2 linkDown interface 15 seconds enable
3 linkUp interface 15 seconds enable
4 authenticationFailure snmp 15 seconds enable
5 entConfigChange module 15 seconds enable
6 policyEventNotification qos 15 seconds enable
7 chassisTrapsStr chassis 15 seconds enable
8 chassisTrapsAlert chassis 15 seconds enable
9 chassisTrapsStateChange chassis 15 seconds enable
10 chassisTrapsMacOverlap module 15 seconds enable
11 vrrpTrapNewMaster vrrp 15 seconds enable
12 vrrpTrapAuthFailure vrrp 15 seconds enable
13 healthMonModuleTrap health 15 seconds enable
14 healthMonPortTrap health 15 seconds enable
15 healthMonCmmTrap health 15 seconds enable
16 bgpEstablished bgp 15 seconds enable
17 bgpBackwardTransition bgp 15 seconds enable
18 esmDrvTrapDropsLink interface 15 seconds enable
19 portViolationTrap interface 15 seconds enable
20 dvmrpNeighborLoss ipmr 15 seconds enable
21 dvmrpNeighborNotPruning ipmr 15 seconds enable
22 risingAlarm rmon 15 seconds enable
23 fallingAlarm rmon 15 seconds enable
24 stpNewRoot stp 15 seconds enable
25 stpRootPortChange stp 15 seconds enable
26 mirrorConfigError pmm 15 seconds enable
27 mirrorUnlikeNi pmm 15 seconds enable
28 slbTrapOperStatus loadbalancing 15 seconds enable
29 sessionAuthenticationTrap session 15 seconds enable
30 trapAbsorptionTrap none 0 seconds enable
31 alaDoSTrap ip 15 seconds enable
32 ospfNbrStateChange ospf 15 seconds enable
33 ospfVirtNbrStateChange ospf 15 seconds enable
34 lnkaggAggUp linkaggregation 15 seconds enable
35 lnkaggAggDown linkaggregation 15 seconds enable
36 lnkaggPortJoin linkaggregation 15 seconds enable
37 lnkaggPortLeave linkaggregation 15 seconds enable
38 lnkaggPortRemove linkaggregation 15 seconds enable
39 monitorFileWritten pmm 15 seconds enable
40 alaVrrp3TrapProtoError vrrp 15 seconds enable
41 alaVrrp3TrapNewMaster vrrp 15 seconds enable
42 chassisTrapsPossibleDuplicateMac chassis 15 seconds enable
43 lldpRemTablesChange aip 15 seconds enable
44 pimNeighborLoss ipmr 15 seconds enable
45 pimInvalidRegister ipmr 15 seconds enable
46 pimInvalidJoinPrune ipmr 15 seconds enable
47 pimRPMappingChange ipmr 15 seconds enable
48 pimInterfaceElection ipmr 15 seconds enable
49 pimBsrElectedBSRLostElection ipmr 15 seconds enable
50 pimBsrCandidateBSRWinElection ipmr 15 seconds enable
51 lpsViolationTrap bridge 15 seconds enable
52 lpsPortUpAfterLearningWindowExpiredT bridge 15 seconds enable
53 lpsLearnTrap bridge 15 seconds enable
54 gvrpVlanLimitReachedEvent bridge 15 seconds enable
55 alaNetSecPortTrapAnomaly netsec 15 seconds enable
56 alaNetSecPortTrapQuarantine netsec 15 seconds enable
57 ifMauJabberTrap interface 15 seconds enable
58 udldStateChange interface 15 seconds enable
59 ndpMaxLimitReached ip 15 seconds enable
60 ripRouteMaxLimitReached rip 15 seconds enable
61 ripngRouteMaxLimitReached ripng 15 seconds enable
62 alaErpRingStateChanged bridge 15 seconds enable
63 alaErpRingMultipleRpl bridge 15 seconds enable
64 alaErpRingRemoved bridge 15 seconds enable
65 ntpMaxAssociation ntp 15 seconds enable
66 ddmTemperatureThresholdViolated interface 15 seconds enable
67 ddmVoltageThresholdViolated interface 15 seconds enable
68 ddmCurrentThresholdViolated interface 15 seconds enable
69 ddmTxPowerThresholdViolated interface 15 seconds enable
70 ddmRxPowerThresholdViolated interface 15 seconds enable
71 webMgtServerErrorTrap webmgt 15 seconds enable
72 multiChassisIpcVlanUp mcm 15 seconds enable
73 multiChassisIpcVlanDown mcm 15 seconds enable
74 multiChassisMisconfigurationFailure mcm 15 seconds enable
75 multiChassisHelloIntervalConsisFailu mcm 15 seconds enable
76 multiChassisStpModeConsisFailure mcm 15 seconds enable
77 multiChassisStpPathCostModeConsisFai mcm 15 seconds enable
78 multiChassisVflinkStatusConsisFailur mcm 15 seconds enable
79 multiChassisStpBlockingStatus mcm 15 seconds enable
80 multiChassisLoopDetected mcm 15 seconds enable
81 multiChassisHelloTimeout mcm 15 seconds enable
82 multiChassisVflinkDown mcm 15 seconds enable
83 multiChassisVFLMemberJoinFailure mcm 15 seconds enable
84 alaDHLVlanMoveTrap vlan 15 seconds enable
85 alaDhcpClientAddressAddTrap ip-dhcp 15 seconds enable
86 alaDhcpClientAddressExpiryTrap ip-dhcp 15 seconds enable
87 alaDhcpClientAddressModifyTrap ip-dhcp 15 seconds enable
88 vRtrIsisDatabaseOverload isis 15 seconds enable
89 vRtrIsisManualAddressDrops isis 15 seconds enable
90 vRtrIsisCorruptedLSPDetected isis 15 seconds enable
91 vRtrIsisMaxSeqExceedAttempt isis 15 seconds enable
92 vRtrIsisIDLenMismatch isis 15 seconds enable
93 vRtrIsisMaxAreaAddrsMismatch isis 15 seconds enable
94 vRtrIsisOwnLSPPurge isis 15 seconds enable
95 vRtrIsisSequenceNumberSkip isis 15 seconds enable
96 vRtrIsisAutTypeFail isis 15 seconds enable
97 vRtrIsisAuthFail isis 15 seconds enable
98 vRtrIsisVersionSkew isis 15 seconds enable
99 vRtrIsisAreaMismatch isis 15 seconds enable
100 vRtrIsisRejectedAdjacency isis 15 seconds enable
101 vRtrIsisLSPTooLargeToPropagate isis 15 seconds enable
102 vRtrIsisOrigLSPBufSizeMismatch isis 15 seconds enable
103 vRtrIsisProtoSuppMismatch isis 15 seconds enable
104 vRtrIsisAdjacencyChange isis 15 seconds enable
105 vRtrIsisCircIdExhausted isis 15 seconds enable
106 vRtrIsisAdjRestartStatusChange isis 15 seconds enable
107 mvrpVlanLimitReachedEvent bridge 15 seconds enable
108 alaHAVlanClusterPeerMismatch ha-vlan 15 seconds enable
109 alaHAVlanMCPeerMismatch ha-vlan 15 seconds enable
110 alaHAVlanDynamicMAC ha-vlan 15 seconds enable
111 unpMcLagMacIgnored da-unp 15 seconds enable
112 unpMcLagConfigInconsistency da-unp 15 seconds enable
113 multiChassisGroupConsisFailure mcm 15 seconds enable
114 multiChassisTypeConsisFailure mcm 15 seconds enable
115 alaPimNonBidirHello ipmr 15 seconds enable
116 dot1agCfmFaultAlarm bridge 15 seconds enable
117 alaSaaIPIterationCompleteTrap system 15 seconds enable
118 alaSaaEthIterationCompleteTrap system 15 seconds enable
119 alaSaaMacIterationCompleteTrap system 15 seconds enable
120 virtualChassisStatusChange vcm 15 seconds enable
121 virtualChassisRoleChange vcm 15 seconds enable
122 virtualChassisVflStatusChange vcm 15 seconds enable
123 virtualChassisVflMemberPortStatusCh vcm 15 seconds enable
124 virtualChassisVflMemberPortJoinFail vcm 15 seconds enable
125 lldpV2RemTablesChange aip 15 seconds enable
126 vRtrLdpInstanceStateChange mpls 15 seconds enable
127 evbFailedCdcpTlvTrap evb 15 seconds enable
128 evbFailedEvbTlvTrap evb 15 seconds enable
129 evbUnknownVsiManagerTrap evb 15 seconds enable
130 evbVdpAssocTlvTrap evb 15 seconds enable
131 evbCdcpLldpExpiredTrap evb 15 seconds enable
132 evbTlvExpiredTrap evb 15 seconds enable
133 evbVdpKeepaliveExpiredTrap evb 15 seconds enable
134 smgrServiceError svcmgr 15 seconds enable
135 smgrServiceHwError svcmgr 15 seconds enable
136 smgrSapError svcmgr 15 seconds enable
137 smgrSapHwError svcmgr 15 seconds enable
138 smgrSdpError svcmgr 15 seconds enable
139 smgrSdpHwError svcmgr 15 seconds enable
140 smgrSdpBindError svcmgr 15 seconds enable
141 smgrSdpBindHwError svcmgr 15 seconds enable
142 smgrGeneralError svcmgr 15 seconds enable
143 smgrStatusChange svcmgr 15 seconds enable
144 portViolationNotificationTrap interface 15 seconds enable
145 multiChassisConsisFailureRecovered mcm 15 seconds enable
146 alaSaaPacketLossTrap system 15 seconds enable
147 alaSaaJitterThresholdYellowTrap system 15 seconds enable
148 alaSaaRTTThresholdYellowTrap system 15 seconds enable
149 alaSaaJitterThresholdRedTrap system 15 seconds enable
150 alaSaaRTTThresholdRedTrap system 15 seconds enable
151 chassisTrapsDuplicateMacCleared chassis 15 seconds enable
152 alaFipsResourceThresholdReached fips 15 seconds enable
153 virtualChassisUpgradeComplete vcm 15 seconds enable
154 appFPSignatureMatchTrap appfp 15 seconds enable
155 virtualChassisVflSpeedTypeChange vcm 15 seconds enable
156 alaSIPSnoopingACLPreemptedBySOSCall qos 15 seconds enable
157 alaSIPSnoopingRTCPOverThreshold sip-snooping 15 seconds enable
158 alaSIPSnoopingRTCPPktsLost qos 15 seconds enable
159 alaSIPSnoopingSignallingLost qos 15 seconds enable
160 alaSIPSnoopingCallRecordsFileMoved sip-snooping 15 seconds enable
161 alaIPv6NeighborLimitExceeded ip 15 seconds enable
162 alaIPv6NeighborVRFLimitExceeded ip 15 seconds enable
163 alaIPv6InterfaceNeighborLimitExceed ip 15 seconds enable
164 alaDyingGaspTrap interface 15 seconds enable
165 alaDhcpSrvLeaseUtilizationThreshold dhcp-server 15 seconds enable
166 alaDHCPv6SrvLeaseUtilizationThresho dhcpv6-server 15 seconds enable
167 smgrServiceStatusChange svcmgr 15 seconds enable
168 smgrSapStatusChange svcmgr 15 seconds enable
169 smgrSdpStatusChange svcmgr 15 seconds enable
170 smgrSdpBindStatusChange svcmgr 15 seconds enable
171 alaPethPwrSupplyConflictTrap module 15 seconds enable
172 alaPethPwrSupplyNotSupportedTrap module 15 seconds enable
173 chasTrapsBPSLessAllocSysPwr chassis 15 seconds enable
174 chasTrapsBPSStateChange chassis 15 seconds enable
175 chasTrapsNiBPSFETStateChange chassis 15 seconds enable
176 alaDhcpBindingDuplicateEntry ip-dhcp 15 seconds enable
177 alaVCSPProtectionTrap vcm 15 seconds enable
178 alaVCSPRecoveryTrap vcm 15 seconds enable
179 pethPsePortOnOffNotification module 15 seconds enable
180 pethMainPowerUsageOnNotification module 15 seconds enable
181 pethMainPowerUsageOffNotification module 15 seconds enable
182 chasTrapsBPSFwUpgradeAlert chassis 15 seconds enable
183 alaAppMonAppRecordFileCreated app-mon 15 seconds enable
184 alaAppMonFlowRecordFileCreated app-mon 15 seconds enable
185 alaDPIFlowRecordFileCreated dpi 15 seconds enable
186 alaLbdStateChangeToShutdown lbd 15 seconds enable
187 alaLbdStateChangeForClearViolationA lbd 15 seconds enable
188 alaLbdStateChangeForAutoRecovery lbd 15 seconds enable
189 alaAutoConfigAutoFabricEnableTrap unknown 15 seconds enable
190 alaVMSnoopingVMLearntAlert vm-snooping 15 seconds enable
191 alaVMSnoopingVMRemovedAlert vm-snooping 15 seconds enable
192 alaVMSnoopingReservedHwResourceLimi vm-snooping 15 seconds enable
193 alaDistArpItfChange ip 15 seconds enable
194 alaDistArpNiThreshold ip 15 seconds enable
195 smgrVxlanSdpBindStatusChange svcmgr 15 seconds enable
196 alaAutoFabricSTPModeChangeAlert fips 15 seconds enable
197 alaKerberosReqTimeoutTrap da-unp 15 seconds enable
198 alaKerberosInactivityTimerExpiryTra da-unp 15 seconds enable
199 alaKerberosRateLimitExceed da-unp 15 seconds enable
200 pethMainPowerUsageNiFailNotificatio module 15 seconds enable
201 systemSwlogSizeTrap system 15 seconds enable
202 esmStormThresholdViolationStatus interface 15 seconds enable
203 alaSTPLoopGuardError stp 15 seconds enable
204 alaSTPLoopGuardRecovery stp 15 seconds enable
205 alaLldpTrustViolation aip 15 seconds enable
206 alaLicenseManagerDemoDayAlert licensing 15 seconds enable
207 alaAaaUserCreation aaa 15 seconds enable
208 alaAaaUserDeletion aaa 15 seconds enable
209 alaAaaUserModification aaa 15 seconds enable
210 systemSwlogFailureTraps system 15 seconds enable
211 pethPseMainTemperatureUpAlert module 15 seconds enable
212 pethPseMainTemperatureDownAlert module 15 seconds enable
213 systemRebootSwlogFailureTrap system 15 seconds enable
214 ospfv3RestartStatusChange ospfv3 15 seconds enable
215 ospfv3NbrRestartHelperStatusChange ospfv3 15 seconds enable
216 ospfv3VirtNbrRestartHelperStatusCha ospfv3 15 seconds enable
217 smgrL2greSdpBindStatusChange svcmgr 15 seconds enable
218 dot3OamThresholdEvent bridge 15 seconds enable
219 dot3OamNonThresholdEvent bridge 15 seconds enable
220 alaDot3OamThresholdEventClear bridge 15 seconds enable
221 alaDot3OamNonThresholdEventClear bridge 15 seconds enable
222 alaAlarmReplayAlarmInputEvent alarm-manager 15 seconds enable
223 alaHWRoutingCapacityExceeded ip 15 seconds enable
224 vrrpv3NewMaster vrrp 15 seconds enable
225 vrrpv3ProtoError vrrp 15 seconds enable
226 alaDhcpBindingTcamFail ip-dhcp 15 seconds enable
227 systemStorageLockTrap storage-locking 15 seconds enable
228 alaDhcpIsfDrop ip-dhcp 15 seconds enable
229 alaDaRouterAuthUserPassedAuthThresh da-unp 15 seconds enable
230 alaDaRouterAuthUserMaxRetryFailed da-unp 15 seconds enable
231 alaDaRouterAuthUserFailedAuthThresh da-unp 15 seconds enable
232 alaDaRouterAuthConfigThresholdExcee da-unp 15 seconds enable
233 alaDaRouterAuthMaxCapacityReached da-unp 15 seconds enable
234 alaTestOamTxDoneTrap bridge 15 seconds enable
235 alaTestOamRxReadyTrap bridge 15 seconds enable
236 alaTestOamTestAbortTrap bridge 15 seconds enable
237 alaTestOamGroupTxDoneTrap bridge 15 seconds enable
238 alaTestOamGroupRxReadyTrap bridge 15 seconds enable
239 alaTestOamGroupAbortTrap bridge 15 seconds enable
240 alaTestOamStatsWriteDoneTrap bridge 15 seconds enable
241 alaDhcpv6IsfTcamFail ip 15 seconds enable
242 alaHWArpCapacityExceeded ip 15 seconds enable
243 alaHWMacCapacityExceeded capability 15 seconds enable
244 alaDaUnpMaxUserExceeded da-unp 15 seconds enable
245 alaDaUnpHWResourceExhaust da-unp 15 seconds enable
246 alaDhcpVsoBrokerIpAddress ip-dhcp 15 seconds enable
==== Ein einfaches Beispiel als Codegerüst: chassis_trap.py ====
In diesem Beispiel nehmen wir ein einfach per CLI zu erzeugenden SNMP Trap "debug generate trap 10" und geben den Inhalt auf der seriellen Konsole (!) aus - also nicht der SSH-Session.
Switch-> vi /flash/python/chassis_trap.py
#!/usr/bin/env python3
import sys
print(sys.argv)
Switch-> debug trap generate 10
Simulated trapId 10 : expected
# Ausgabe auf der seriellen Konsole:
['/flash/python/chassis_trap.py', '-t', 'chassisTrapsMacOverlap', '-d', '{"sysUpTime":82768127,"physicalIndex":65,"chasTrapMacRangeIndex":1}']
===== Fortgeschritten =====
==== Anwendungsfall: OmniSwitch-Konfiguration via scp auf Server exportieren ====
Damit der OmniSwitch nach erfolgreichem "write memory flash-synchro" per scp auf einen externen Server exportiert, müssen ein paar Voraussetzungen erfüllt sein.
- Ein SSH private/public Key für den OmniSwitch muss hinterlegt sein (dabei ist der private-key auf dem OmniSwitch und der public-key auf dem Server in ~/.ssh/authorized_keys)
- Bei einer Automatisierung ist eine "yes/no"-Abfrage wie für den SSH-Host-Fingerprint für known_hosts eine Herausforderung die es zu lösen gilt
- Damit die Verbindung per SSH/SCP erfolgreich ist, muss das identity_file mit korrekten Zugriffsrechten hinterlegt werden
- Das Skript auf dem Switch hinterlegen
- Mit "event-action" die CLI-Aktion "write memory flash-synchro" mit dem Skript verknüpfen
- Den Vorgang testen
=== 1. SSH private/public Key erzeugen ===
ssh-keygen -t rsa -b 2048 -C "omniswitch@home"
Der resultierende id_rsa.pub-Key muss für den Benutzer in ~/.ssh/authorized_keys hinterlegt werden. Der id_rsa (private-key) muss auf den Switch (die Switches) kopiert und dort mit **chmod 600 /path/to/id_rsa** mit den korrekten Zugriffsrechten versehen werden.
=== 2. Automatisierung von SSH-Host-Fingerprint yes/no ===
Der Zusatz **-o StrictHostKeyChecking=no** sollte nur verwendet werden, wenn man mit der Konsequenz einer potentiellen MITM-Attacke leben kann. Bitte beachten dass das Skript fehlschlagen wird, wenn sich der SSH-Host-Fingerprint ändert. Das könnte man zwar auch wegkonfigurieren, aber ich halte es für keine gute Idee.
Switch-> scp -i /path/to/omniswitch_private_ssh_key -o StrictHostKeyChecking=no /flash/working/vcboot.cfg @:/path/to/configbackup/filename.cfg
=== 3. Korrekte Zugriffsrechte für ssh_private_key ===
Switch-> chmod 600 /path/to/omniswitch_private_ssh_key
=== 4. Skript für Export ===
Vorausgesetzt die Tipps aus diesem Artikel wurden angewendet, kann nun mit diesem Skript die Konfiguration extern abgelegt werden. Das folgende Skript hier abspeichern: **/flash/python/chassis_trap.py**
#!/usr/bin/env python3
import sys
import os
import getopt
import json
import subprocess
# Based upon work done by Patricio Martelo and Benny Eggerstedt in 2015
# Some corrections and enhancements done by Benny in 2020
# Variables to set by customer
ssh_priv_key = "/flash/python/omniswitch_private_ssh_key"
config_to_backup = "/flash/working/vcboot.cfg"
scp_target_user = "benny"
scp_host = "shiva.home" # could also be an IP address
scp_path = "/home/benny/configs/" # full path or relative to ~ of the user, include the "/" at the end!
# Get system name
system_name = os.uname()[1].replace(" ", "_")
# Uncomment during early stage of development
#print(sys.argv)
# Load the data that is being sent to us
# -t holds the traptype
# -d holds the trapdata
try:
opts, args = getopt.getopt(sys.argv[1:], "t:d:")
except getopt.GetoptError as err:
print(err)
print("{0}".format(sys.argv))
sys.exit(2)
traptype = "(none)"
trapdata = "{}"
# Go through the data in opts and allocate it properly
# traptype gets the value from -t
# trapdata gets the value from -d
for o, a in opts:
if o == "-t":
traptype = a
elif o == "-d":
trapdata = a
#print("traptype: {0}".format(traptype))
#print("trapdata: {0}".format(trapdata))
#print(json.loads(trapdata))
trapdetail = json.loads(trapdata)
#print(trapdetail)
if trapdetail["chassisTrapsAlertNumber"] == 5:
# This type of trap is sent when write memory flash-synchro finished
#print("detected write memory flash synchro")
# When the "write memory flash-synchro" was successful, export the configuration
if "success" in trapdetail["chassisTrapsAlertDescr"]:
system_date = subprocess.check_output(["system", "date"]).decode("ascii").strip().replace("/", "_")
system_time = subprocess.check_output(["system", "time"]).decode("ascii").strip().replace(":", "_")
timestamp = system_date + "_" + system_time
os.system("scp -v -i {0} -o StrictHostKeyChecking=no {1} {2}@{3}:{4}{5}_{6}.cfg".format(ssh_priv_key, config_to_backup, scp_target_user, scp_host, scp_path, system_name, timestamp))
print("Process finished!")
**5. Mit "event-action" den Trap mit dem Skript verknüpfen:**
Switch-> event-action trap chassisTrapsAlert script /flash/python/chassis_trap.py
**6. Testen:**
Switch-> write memory flash-synchro
**Ausgabe auf der Switch-Konsole:**
{'sysUpTime': 85955617, 'physicalIndex': 65, 'chassisTrapsObjectType': 5, 'chassisTrapsObjectNumber': 65, 'chassisTrapsAlertNumber': 4, 'chassisTrapsAlertDescr': 'CERTIFY w/FLASH SYNCHRO process started'}
Wed Sep 9 18:16:07 : ChassisSupervisor MipMgr INFO message:
+++ Copy running to certified succeeded
{'sysUpTime': 85961949, 'physicalIndex': 65, 'chassisTrapsObjectType': 5, 'chassisTrapsObjectNumber': 65, 'chassisTrapsAlertNumber': 5, 'chassisTrapsAlertDescr': 'CERTIFY process completed successfully'}
Please wait...
Executing: program /bin/tps/ssh host shiva.home, user benny, command scp -v -t /home/benny/configs/Switch_09_09_2020_18_16_07.cfg
Sending file modes: C0644 4312 vcboot.cfg
Sink: C0644 4312 vcboot.cfg
Process finished!
===== Fehleranalyse =====
==== scp lost connection ====
Wenn die folgende Fehlermeldung auftaucht, liegt entweder ein Kommunikationsfehler vor oder das identity_file ist für zuviele Nutzer lesbar/editierbar.
Please wait...
lost connection
**Lösung:**
Switch-> chmod 600 /path/to/omniswitch_private_key
==== scp known_hosts ====
(Abfrage der yes/no SSH Fingerprint-Bestätigung deaktivieren.)
Der Zusatz -o StrictHostKeyChecking=no führt dazu dass man die Identität des Servers nicht bestätigen muss. Die Identität des Servers wird aber trotzdem in ~/.ssh/known_hosts abgelegt und wenn der Fingerprint sich ändert wird das Skript fehlschlagen.
scp -i /path/to/omniswitch_private_ssh_key -o StrictHostKeyChecking=no /flash/working/vcboot.cfg @:/path/to/configbackup/filename.cfg