<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>yurisk.info &#187; Expect</title>
	<atom:link href="http://yurisk.info/tag/expect/feed/" rel="self" type="application/rss+xml" />
	<link>http://yurisk.info</link>
	<description>Technical Blog about IT Security and Networking</description>
	<lastBuildDate>Tue, 07 Sep 2010 12:42:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Autologin Expect scripts for telnet/ssh</title>
		<link>http://yurisk.info/2008/09/21/autologin-expect-scripts-for-telnetssh/</link>
		<comments>http://yurisk.info/2008/09/21/autologin-expect-scripts-for-telnetssh/#comments</comments>
		<pubDate>Sun, 21 Sep 2008 17:28:02 +0000</pubDate>
		<dc:creator>Yuri</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Expect]]></category>

		<guid isPermaLink="false">http://yurisk.wordpress.com/?p=25</guid>
		<description><![CDATA[Tired of typing over and over  your username/password when using telnet/ssh ? Here are Expect http://expect.nist.gov/ scripts to autologin by Telnet and ssh Notes: - Yes, it is not secure to keep you username/password saved somewhere, so know what you do . In my opinion  as long as this is a dedicated for remote logins [...]]]></description>
			<content:encoded><![CDATA[<p>Tired of typing over and over  your username/password when using<br />
telnet/ssh ? Here are Expect <a href="http://expect.nist.gov/">http://expect.nist.gov/</a> scripts to autologin by Telnet and ssh<br />
Notes:<br />
- Yes, it is not secure to keep you username/password saved somewhere, so know<br />
what you do . In my opinion  as long as this<br />
is a dedicated for remote logins server, that has no access from outside, and hardened accordingly<br />
(pertinent to the scripts &#8211; only owner/root can read user&#8217;s home folder, etc.,) the risk is acceptable.</p>
<p>Note 2: password is saved in a file named &#8220;sword&#8221;</p>
<p>cat tel<br />
#!/usr/local/bin/expect   Change to the location of your Expect package<br />
 <br />
proc Usage {} {<br />
  puts &#8220;\n tel &lt;equipment to enter&gt; \n&#8221;<br />
  return<br />
            }<br />
 </p>
<p>set  argnumber  [llength $argv]<br />
 <br />
if {$argnumber==0} {<br />
      puts &#8220;You need to specify at least one piece of equipment to log into\n&#8221;<br />
      Usage<br />
      exit<br />
 <br />
   }  elseif {$argnumber&gt;1}  {<br />
       puts &#8220;You specified too many arguments, only one please\n&#8221;<br />
 <br />
      Usage<br />
       exit<br />
                  }<br />
 <br />
set hostName [lindex $argv 0]<br />
 <br />
 puts &#8220;Entering $hostName&#8221;<br />
 set username &#8220;myusername&#8221;<br />
 set HANDL [open "sword"]<br />
 set password [gets $HANDL]<br />
 close $HANDL<br />
 spawn telnet $hostName<br />
 expect {[Uu]sername*} {<br />
  send &#8220;$username\r&#8221;<br />
 }<br />
 <br />
 expect {[Pp]assword:} {<br />
 send &#8220;$password\r&#8221;<br />
 }<br />
 </p>
<p>#Cisco specific block &#8211; to enter enable level, you may remove this block if not needed<br />
 expect {*#}  {<br />
 send &#8220;enable\r&#8221;  }<br />
 <br />
 expect {[Pp]assword:} {<br />
 send &#8220;$password\r&#8221;<br />
 }<br />
 #End of Cisco specific block</p>
<p> interact<br />
 </p>
<p>Now SSH login script<br />
&gt; cat essh<br />
#!/usr/local/bin/expect   Change to the location of your Expect package<br />
 <br />
proc Usage {} {<br />
  puts &#8220;\n essh  &lt;equipment to enter&gt; \n&#8221;<br />
  return<br />
            }<br />
 </p>
<p>set  argnumber  [llength $argv]<br />
 <br />
if {$argnumber==0} {<br />
      puts &#8220;You need to specify at least one piece of equipment to log into\n&#8221;<br />
      Usage<br />
      exit<br />
 <br />
   }  elseif {$argnumber&gt;1}  {<br />
       puts &#8220;You specified too many arguments, only one please\n&#8221;<br />
 <br />
      Usage<br />
       exit<br />
                  }<br />
 <br />
set hostName [lindex $argv 0]<br />
 <br />
 puts &#8220;Entering $hostName&#8221;<br />
 set username &#8220;myusername&#8221;<br />
 set HANDL [open "sword"]<br />
 set password [gets $HANDL]<br />
 spawn ssh $hostName<br />
 <br />
 expect {[Pp]assword:} {<br />
 send &#8220;$password\r&#8221;<br />
 }</p>
<p>#Again goes Cisco &#8211; specific block , remove if not needed<br />
 expect {*#}  {<br />
 send &#8220;enable\r&#8221;  }<br />
 <br />
 expect {[Pp]assword:} {<br />
 send &#8220;$password\r&#8221;<br />
 }<br />
 #End of Cisco &#8211; specific block</p>
<p> interact</p>
]]></content:encoded>
			<wfw:commentRss>http://yurisk.info/2008/09/21/autologin-expect-scripts-for-telnetssh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
