summaryrefslogtreecommitdiff
path: root/demos/demo.py
diff options
context:
space:
mode:
Diffstat (limited to 'demos/demo.py')
-rwxr-xr-xdemos/demo.py53
1 files changed, 28 insertions, 25 deletions
diff --git a/demos/demo.py b/demos/demo.py
index aa4bdaa..fff6178 100755
--- a/demos/demo.py
+++ b/demos/demo.py
@@ -28,9 +28,13 @@ import socket
import sys
import time
import traceback
+from paramiko.py3compat import input
import paramiko
-import interactive
+try:
+ import interactive
+except ImportError:
+ from . import interactive
def agent_auth(transport, username):
@@ -45,24 +49,24 @@ def agent_auth(transport, username):
return
for key in agent_keys:
- print 'Trying ssh-agent key %s' % hexlify(key.get_fingerprint()),
+ print('Trying ssh-agent key %s' % hexlify(key.get_fingerprint()))
try:
transport.auth_publickey(username, key)
- print '... success!'
+ print('... success!')
return
except paramiko.SSHException:
- print '... nope.'
+ print('... nope.')
def manual_auth(username, hostname):
default_auth = 'p'
- auth = raw_input('Auth by (p)assword, (r)sa key, or (d)ss key? [%s] ' % default_auth)
+ auth = input('Auth by (p)assword, (r)sa key, or (d)ss key? [%s] ' % default_auth)
if len(auth) == 0:
auth = default_auth
if auth == 'r':
default_path = os.path.join(os.environ['HOME'], '.ssh', 'id_rsa')
- path = raw_input('RSA key [%s]: ' % default_path)
+ path = input('RSA key [%s]: ' % default_path)
if len(path) == 0:
path = default_path
try:
@@ -73,7 +77,7 @@ def manual_auth(username, hostname):
t.auth_publickey(username, key)
elif auth == 'd':
default_path = os.path.join(os.environ['HOME'], '.ssh', 'id_dsa')
- path = raw_input('DSS key [%s]: ' % default_path)
+ path = input('DSS key [%s]: ' % default_path)
if len(path) == 0:
path = default_path
try:
@@ -96,9 +100,9 @@ if len(sys.argv) > 1:
if hostname.find('@') >= 0:
username, hostname = hostname.split('@')
else:
- hostname = raw_input('Hostname: ')
+ hostname = input('Hostname: ')
if len(hostname) == 0:
- print '*** Hostname required.'
+ print('*** Hostname required.')
sys.exit(1)
port = 22
if hostname.find(':') >= 0:
@@ -109,8 +113,8 @@ if hostname.find(':') >= 0:
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((hostname, port))
-except Exception, e:
- print '*** Connect failed: ' + str(e)
+except Exception as e:
+ print('*** Connect failed: ' + str(e))
traceback.print_exc()
sys.exit(1)
@@ -119,7 +123,7 @@ try:
try:
t.start_client()
except paramiko.SSHException:
- print '*** SSH negotiation failed.'
+ print('*** SSH negotiation failed.')
sys.exit(1)
try:
@@ -128,25 +132,25 @@ try:
try:
keys = paramiko.util.load_host_keys(os.path.expanduser('~/ssh/known_hosts'))
except IOError:
- print '*** Unable to open host keys file'
+ print('*** Unable to open host keys file')
keys = {}
# check server's host key -- this is important.
key = t.get_remote_server_key()
- if not keys.has_key(hostname):
- print '*** WARNING: Unknown host key!'
- elif not keys[hostname].has_key(key.get_name()):
- print '*** WARNING: Unknown host key!'
+ if hostname not in keys:
+ print('*** WARNING: Unknown host key!')
+ elif key.get_name() not in keys[hostname]:
+ print('*** WARNING: Unknown host key!')
elif keys[hostname][key.get_name()] != key:
- print '*** WARNING: Host key has changed!!!'
+ print('*** WARNING: Host key has changed!!!')
sys.exit(1)
else:
- print '*** Host key OK.'
+ print('*** Host key OK.')
# get username
if username == '':
default_username = getpass.getuser()
- username = raw_input('Username [%s]: ' % default_username)
+ username = input('Username [%s]: ' % default_username)
if len(username) == 0:
username = default_username
@@ -154,21 +158,20 @@ try:
if not t.is_authenticated():
manual_auth(username, hostname)
if not t.is_authenticated():
- print '*** Authentication failed. :('
+ print('*** Authentication failed. :(')
t.close()
sys.exit(1)
chan = t.open_session()
chan.get_pty()
chan.invoke_shell()
- print '*** Here we go!'
- print
+ print('*** Here we go!\n')
interactive.interactive_shell(chan)
chan.close()
t.close()
-except Exception, e:
- print '*** Caught exception: ' + str(e.__class__) + ': ' + str(e)
+except Exception as e:
+ print('*** Caught exception: ' + str(e.__class__) + ': ' + str(e))
traceback.print_exc()
try:
t.close()