Sponsored Content
Top Forums Shell Programming and Scripting How to login with other set of credentials while remote logging? Post 302798359 by scriptscript on Thursday 25th of April 2013 06:57:08 AM
Old 04-25-2013
How to login with other set of credentials while remote logging?

Below is the code.
I need to login into the router if the 1st set of credentials are correct..

if wrong... then it has to check with 2nd set of credentials..

=> if the credentials are correct... then it should continue..
=> if the credentials are wrong(should not check for 2nd time... then it should check with other set of credentials(mentioned in the program..

Could anyone please help ...

Code:
 use strict;
 use warnings;
 
 use Net::Appliance::Session;
 
 my $ios_device_ip = '10.250.249.215';
 
 my $ios_username        = 'cisco';
 my $ios_password        = 'cisco';
 my $ios_enable_password = 'cisco';

#my $user2 = 'newcisco';
#my $pass2 = 'newpass';
#my $enablepassnew = 'cisco'; 

 my $running_config_file = "$ENV{HOME}/running_config.txt";
 
 my $session_obj = Net::Appliance::Session->new(
Host => $ios_device_ip,Transport => 'SSH',  );
 
 # give verbose output whilst we run this script
 $session_obj->input_log(*STDOUT);
 
 # try to login to the ios device, ignoring host check
 $session_obj->connect(
     Name => $ios_username,
     Password => $ios_password,
     SHKC => 0
 );
 
 # drop in to enable mode
 $session_obj->begin_privileged($ios_enable_password);
 
 # get our running config
 my @running_config =  $session_obj->cmd('show running');
 
 # chop out the extra info top and bottom of the config
 @running_config = @running_config[ 2 .. (@running_config -1)];
 
 open(FH, "> $running_config_file")
   or die("Cannot open config file : $!");
 print FH @running_config;
 close FH;
 
 # close down our session
 $session_obj->close;

---------- Post updated 04-25-13 at 05:57 AM ---------- Previous update was 04-24-13 at 08:58 AM ----------

Could anyone please help me on this ?

Thanks in advance...

Regards,
J

---------- Post updated at 05:57 AM ---------- Previous update was at 05:57 AM ----------

Could anyone please help me on this ?

Thanks in advance...

Regards,
J
 

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Delay when logging in remote

Hello again! When I log in to my computer (Ultra 5 running Solaris 8) from a pc (FTP or Telnet) I have to wait forever (about 30 seconds) before I can log in. Is this some kind of security thing? Can I turn it of? How? Anders (8 Replies)
Discussion started by: alfabetman
8 Replies

2. Shell Programming and Scripting

logging to remote server

Hi, I want to log-in to a remote server using shell script. The server requires the following while allowing a connection: username password one - letter authorisation. How can i implement this in my script? thanks, abey (6 Replies)
Discussion started by: abey
6 Replies

3. Shell Programming and Scripting

Problem with logging into remote host

Hi All, I am using a script for remotely logging into a rhost using telnet and shutdown a server. The script is as follows. IP = 10.24.12.23; export IP UNAME = username ; export UNAME PWD = password; export PWD CRDIR = /etc/rc.d/init.d ; export CRDIR echo "logging into remote... (4 Replies)
Discussion started by: patil_reddy
4 Replies

4. Solaris

how to login with ssh to remote system with out applying the remote root/usr password

how to login with ssh to remote system with out applying the remote root/user password with rlogin we can ujse .rhosts file but with ssh howits possible plz guide (2 Replies)
Discussion started by: tv.praveenkumar
2 Replies

5. Solaris

Solaris 2.6 failed login logging

Holla! Sorry to spam the board with all my Solaris 2.6 questions (I just found this forum). My most recent problem is that not ALL failed log-ins are getting logged in /var/log/authlog. It seems to work fine for the "su" command from a non-root user, but the actual "login" command or a desktop... (4 Replies)
Discussion started by: rrossorr
4 Replies

6. SCO

sco remote logging problem

Hello, I am trying to write log from sco box to a remote host. We already have that setting working for linux server using syslog. With this setting(on LINUX) *.* @remote-host for sco I have this *.debug /usr/adm/syslog *.* ... (3 Replies)
Discussion started by: polestar
3 Replies

7. Shell Programming and Scripting

Logging into device with other set of credentials

If I run the below code... it will login into the router and then changes to privilege mode and then stores the running configuration information to an array. In this program, I have included the username and password . In case the username and password is wrong.. it will re login for 2 times... (0 Replies)
Discussion started by: scriptscript
0 Replies

8. UNIX for Dummies Questions & Answers

How to set colorscheme for a shell while/after logging in?

I am trying to put the below in a file .vimrc and sourced the file, however when i vi any file it is not showing/reflecting color scheme i wanted, Is there any way i can make this work? we use common application account to log in and by default it is CSH and later we change the shell to KSH. I want... (3 Replies)
Discussion started by: Ariean
3 Replies

9. UNIX for Beginners Questions & Answers

How to check via SSH and credentials if file on remote server exists?

Hi there, I am sorry to ask that kind of beginner thing, but all the code I found online didnt work for me. All I want to do is: Check via SSH if a File exists on my webserver. The SSH login has to be with username and password. So I would be very thankful if somebody could write the line.... (8 Replies)
Discussion started by: Jens885544
8 Replies
Net::Appliance::Session::APIv2(3pm)			User Contributed Perl Documentation		       Net::Appliance::Session::APIv2(3pm)

NAME
Net::Appliance::Session::APIv2 - Back-compatibility with API version 2 VERSION
version 3.121640 INTRODUCTION
Version 3 of Net::Appliance::Session is a complete rewrite of the previous version and so all client code will need updating. This is not ideal, but is important for the module to survive, and have some much-requested features implemented. You can choose either to keep things just as they are on your system, with version 2 API client code and version 2 of the library. Or you can modify your code to be compatible with version 3 and install that newer version (recommended). Finally there is the option to have version 3 installed but use a simple compatibility layer to interface from version 2 client code. APIv2 Back-Compat Module If you have installed version 3 of the library but don't wish to update client code, this APIv2 Back-Compat Module might be sufficient for your application to keep working. In your code, wherever you have "use Net::Appliance::Session", replace it with: use Net::Appliance::Session::APIv2; The effect is that a wrapper is placed around the version 3 API such that your version 2 client code should continue to work. Be aware that the author is not planning to add any features to this compatibility layer, and in fact some features are missing (those which cannot be mapped into the new API). The list of missing features is: o Custom phrasebooks cannot be loaded (i.e. the "Source" param to "new()" doesn't work) o The "error()" method is not implemented o Error strings in output from the device are not acted upon o All exceptions are of class "Net::Appliance::Session::Exception" o Exceptions probably don't contain the same amount of useful information A note on error handling A large part of the philosophy of earlier versions was that the module could identify certain error conditions at the CLI by the syntax used in output messages, and act accordingly. Together with that, client code was encouraged to capture exceptions and check for various conditions, exception types, and messages. When automating a CLI, this doesn't really make much sense. If a human makes a mistake, the CLI shows an error. A computer-driven script should never make a mistake - it will have been tested and developed. It's unnecessary overhead to check for errors all the time and attempt to recover. Of course, the remote device might still have a problem and report it, or die, but in that case version 3 of the module will still itself "die" with an error message. So any version 2 code you have which handles exceptions by class, and checks for Net::Appliance::Session::Exception will be okay, but other classes used in earlier versions are not supported in the compatibility layer. Porting to API Version 3 The changes are not too severe - you should recognise all the method calls. Some features have been removed, and you will need to rewrite any custom phrasebooks. You should go through each of the following sections and make changes as required. Method Parameter Passing You must provide parameters to the "new", "connect", and "begin_privileged" methods as a hash reference with named parameters. There is no longer the option to have unnamed parameters as a bare list. Here is an example of how things must be, for each of these methods: my $s = Net::Appliance::Session->new({ personality => 'ios', transport => 'SSH', host => 'hostname.example', }); eval { $s->connect({ name => 'username', password => 'loginpass' }); $s->begin_privileged({ password => 'privilegedpass' }); # etc..... Parameters to "new" As shown above, you can no longer provide a bare device host name, and nothing else, to "new". You must provide the "hostname", "transport" and "personality". The "personality" parameter is the direct equivalent of "Platform" in the previous version 2 API. The Transports on offer are the same (except they now work on Windows natively - no cygwin required). Parameters to "cmd" As before, you can pass in a single string statement which will be issued to the connected CLI, followed by a carriage return. The method returns the complete response either in one Perl Scalar or an Array, depending on what you assign the result of the method call to: my $config = $s->cmd('show running-config'); my @interfaces = $s->cmd('show interfaces brief'); In addition, you can pass a Hash Reference as the second parameter, with some additional options. This includes a custom timeout for the command, custom Regular Expressions to match the completed response, and the option to suppress addition of a carriage return. See the Net::CLI::Interact::Role::Engine manual page for further details. Custom Phrasebooks Sadly it has not been possible to automatically import existing version 2 custom phrasebooks into the version 3 module. The built-in phrasebook is however still included, just as before. Please see the comprehensive documentation for Net::CLI::Interact::Phrasebook and the "add_library" method of this module, to see how to construct and install your custom phrasebook. There's also the Cookbook which gives examples of the new language. Error and Exception Handling As explained above, there are no longer any fancy exception objects, and instead just simple Perl "die" calls when things go wrong. Typically this will be a timeout in communications at the connected CLI, or a bug in the module code. Check out the example script included with this distribution for a demonstration of handling these errors. Troubleshooting Whereas before you used the "input_log" method, please use the "set_global_log_at" method instead, for similar dumping of communications (and more). There's actually much more powerful logging, if you check out the main Net::Appliance::Session manual pages. $s->set_global_log_at('debug'); Useful New Features See the extensive documentation of Net::Appliance::Session or the underlying Net::CLI::Interact module for details. You have a lot more on offer with the version 3 API. AUTHOR
Oliver Gorwits <oliver@cpan.org> COPYRIGHT AND LICENSE
This software is copyright (c) 2012 by Oliver Gorwits. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. perl v5.14.2 2012-06-12 Net::Appliance::Session::APIv2(3pm)
All times are GMT -4. The time now is 02:05 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy