Expect /bash, 2 ssh login users

Login or Register to Reply

Thread Tools Search this Thread
# 1  
Expect /bash, 2 ssh login users

HI all
i need to connect to about 900 cisco routers and switch to do some configs changes. the issue i am having is that half the devices have one set of username and password and the other half have another username and password. From expect or bash script i can ssh into a device and make changes. I need a sript that will try and ssh into the device with user 1 and password, if it fails it must try and ssh with user2 name and password.

I am new to expect and bash, explination and help will greatly be appreciated.
my expect script so far:

#!/usr/bin/expect -f
# Define the input variable, this will be a routername.domain-name
        set host "x.x.x.x"                       
        set timeout 8
# Define the login credentials we will use.
        set username "xxxx" 
        set password "!xxxx123" 
        set usernamessh "eeeeee"    
        set passwordssh "eeee123" 
# Ssh to host  ip address
spawn ssh -q -o StrictHostKeyChecking=no $username@$host

expect {
  timeout { send_user "\nFailed to get password prompt\n"; exit 1 }
  eof { send_user "\nSSH failure for $hostname\n"; exit 1 }
# Send password if ssh is succesfull
send "$password\r"
# If Prompts *# not found, return login failed
expect {
  timeout { send_user "\nLogin failed. Password incorrect.\n"; exit 1}

# from here i need to add second ssh attempt to  
#login to device using the second username and password..if  
# the first ssh failed.  please help i have no idea what to do now.

Last edited by Scott; 09-10-2018 at 09:07 AM.. Reason: Please use code tags
Login or Register to Reply

Thread Tools Search this Thread
Search this Thread:
Advanced Search

More UNIX and Linux Forum Topics You Might Find Helpful
Expect script ssh passwordless login
how can i use an expect script to do a passwordless ssh login and run a script on a bunch of remote hosts? I do not want to use public key authentication as this would require me to setup the keys on the clients etc....... Shell Programming and Scripting
Shell Programming and Scripting
How to set PATH variable for all HP-UX users when they login using ssh?
Hello friends, I need to set PATH variable for all HP-UX users. I tried to implement it using /etc/profile and /etc/sshrc both none of them work. I don't see sshrc file anywhere. Please advise! TIA... HP-UX
RHEL: Users unable to login via SSH
removing the post... Red Hat
Red Hat
bash, ssh and expect to multiple ip addresses
Hi, I need script that will allow me to connect to multiple clients using ssh on Ubuntu terminal... I have a txt file with the ip addresses of clients, i need a script that will connect to everyone one by one and send some commands... The idea is to check some settings on every client...... Shell Programming and Scripting
Shell Programming and Scripting
Not able to login as normal users through console /telnet/ssh
Hi , I am having problem,users are not able to login through ssh or telnet.Only we can login as root user in console. Restarted telnet and sshd ,no luck. Any ideas. AIX -- 5.2 ML 07 Thanks, MNK... AIX
UNIX and Linux

Unix (trademarked as the UNIX certification mark) is a very mature family of multitasking, multiuser computer operating systems that evolved from the original AT&T Unix. Unix development starting in the 1970s by legendary Bell Labs programmers Ken Thompson, Dennis Ritchie, and others. Unix was first targeted for the Bell System and AT&T licensed Unix to outside parties. In the 1970s time period, this lead to a variety of for-profit as well as not-for-profit Unix variants.
In the early days, this included the University of California, Berkeley (BSD), Microsoft (Xenix), IBM (AIX), and Sun Microsystems (Solaris). In the early 1990s, AT&T sold their Unix rights to Novell. In 1995 Novell sold their Unix business to the Santa Cruz Operation (SCO). The UNIX trademark was passed to The Open Group, a "neutral" industry consortium. The Open Group promoted the use of the UNIX trademark for certified operating systems that comply with the Single UNIX Specification (SUS). In 2014 Apple's macOS became the Unix version with the largest global install base and macOS remains the largest Unix-user base today.
Linux is a family of open source Unix-like operating systems based on the Linux kernel. The Linux kernel is an operating system kernel first released by Linus Torvalds on 17 September 1991. Linux distributions include the Linux kernel, system software and libraries. Popular free open source Linux distributions include Debian, Fedora, and Ubuntu. Commercial Linux distributions include Red Hat Enterprise Linux and SUSE Linux Enterprise Server. Linux may be freely modified and redistributed. Anyone on the planet may create a Linux distribution for any purpose.
Please enjoy and help our forum community by "showing your work" and posting your code, even when your code is not working as expected. To help others help you, please wrap your code blocks, sample input, sample output, error messages, and other data in CODE tags and wrap your short commands and short data objects in ICODE tags. We were all beginners in the beginning. If you have any questions about how to register or how to post, please contact us in Live Chat. Thank you and enjoy this "forever free" technical support community for UNIX, Linux and computer information technology in general.