File tree Expand file tree Collapse file tree 3 files changed +79
-0
lines changed Expand file tree Collapse file tree 3 files changed +79
-0
lines changed Original file line number Diff line number Diff line change @@ -266,3 +266,30 @@ def test_when_connecting_using_username_and_rsa_key_then_authentication_passes(
266
266
) as m :
267
267
# THEN expect to be connected
268
268
assert m .connected
269
+
270
+
271
+ def test_when_connecting_using_username_and_wrong_key_then_authentication_fails (
272
+ netconf_server , tmp_path
273
+ ):
274
+ # GIVEN generated key
275
+ key_filepath = (tmp_path / "key" ).as_posix ()
276
+ key = paramiko .RSAKey .generate (bits = 2048 )
277
+ key .write_private_key_file (key_filepath )
278
+
279
+ # GIVEN SSH username and a different key have been defined
280
+ netconf_server .username = "admin"
281
+ netconf_server .authorized_key = f"foobar"
282
+
283
+ # WHEN connecting using wrong key
284
+ with pytest .raises (AuthenticationError ) as error :
285
+ with manager .connect (
286
+ host = "localhost" ,
287
+ port = 8830 ,
288
+ username = "foo" ,
289
+ key_filename = key_filepath ,
290
+ hostkey_verify = False ,
291
+ ):
292
+ ...
293
+
294
+ # THEN expect error
295
+ assert error
Original file line number Diff line number Diff line change @@ -264,3 +264,29 @@ def test_when_connecting_using_username_and_rsa_key_then_authentication_passes(
264
264
) as session :
265
265
# THEN expect to be connected
266
266
assert session .session_id
267
+
268
+ def test_when_connecting_using_username_and_wrong_key_then_authentication_fails (
269
+ netconf_server , tmp_path
270
+ ):
271
+ # GIVEN generated key
272
+ key_filepath = (tmp_path / "key" ).as_posix ()
273
+ key = paramiko .RSAKey .generate (bits = 2048 )
274
+ key .write_private_key_file (key_filepath )
275
+
276
+ # GIVEN SSH username and a different key have been defined
277
+ netconf_server .username = "admin"
278
+ netconf_server .authorized_key = f"foobar"
279
+
280
+ # WHEN connecting using wrong key
281
+ with pytest .raises (paramiko .ssh_exception .AuthenticationException ) as error :
282
+ with connect_ssh (
283
+ host = "localhost" ,
284
+ port = 8830 ,
285
+ username = "foo" ,
286
+ password = None ,
287
+ key_filename = key_filepath ,
288
+ ) as session :
289
+ Manager (session = session )
290
+
291
+ # THEN expect error
292
+ assert "Authentication failed." in str (error )
Original file line number Diff line number Diff line change @@ -280,3 +280,29 @@ def test_when_connecting_using_username_and_rsa_key_then_authentication_passes(
280
280
) as conn :
281
281
# THEN expect to be connected
282
282
assert conn .isalive ()
283
+
284
+ def test_when_connecting_using_username_and_wrong_key_then_authentication_fails (
285
+ netconf_server , tmp_path
286
+ ):
287
+ # GIVEN generated key
288
+ key_filepath = (tmp_path / "key" ).as_posix ()
289
+ key = paramiko .RSAKey .generate (bits = 2048 )
290
+ key .write_private_key_file (key_filepath )
291
+
292
+ # GIVEN SSH username and a different key have been defined
293
+ netconf_server .username = "admin"
294
+ netconf_server .authorized_key = f"foobar"
295
+
296
+ # WHEN connecting using wrong key
297
+ with pytest .raises (ScrapliConnectionError ) as error :
298
+ with NetconfDriver (
299
+ host = "localhost" ,
300
+ port = 8830 ,
301
+ auth_username = "foo" ,
302
+ auth_private_key = key_filepath ,
303
+ auth_strict_key = False ,
304
+ ):
305
+ pass
306
+
307
+ # THEN expect error
308
+ assert "permission denied, please try again." in str (error )
You can’t perform that action at this time.
0 commit comments