XSEDE / oauth-ssh

SSH with Globus Auth
Apache License 2.0
28 stars 11 forks source link

authorize fails on Ubuntu 19.04 when known_hosts file does not exist #63

Closed tscollins-nygc closed 4 years ago

tscollins-nygc commented 4 years ago
user@ubuntu-MP:~$ oauth-ssh-token authorize ga.nygenome.org
Traceback (most recent call last):
  File "/home/user/.local/bin/oauth-ssh-token", line 10, in 
    sys.exit(oauth_ssh_token())
  File "/home/user/.local/lib/python2.7/site-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/home/user/.local/lib/python2.7/site-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/home/user/.local/lib/python2.7/site-packages/click/core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/user/.local/lib/python2.7/site-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/user/.local/lib/python2.7/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/home/user/.local/lib/python2.7/site-packages/oauth_ssh/oauth_ssh_token.py", line 88, in wrapper
    func(*args, **kw)
  File "/home/user/.local/lib/python2.7/site-packages/oauth_ssh/oauth_ssh_token.py", line 124, in token_authorize
    policy = SSHService(fqdn, port).get_security_policy()
  File "/home/user/.local/lib/python2.7/site-packages/oauth_ssh/ssh_service.py", line 26, in get_security_policy
    transport = Transport(self._fqdn, self._port)
  File "/home/user/.local/lib/python2.7/site-packages/oauth_ssh/transport.py", line 123, in __init__
    known_host_keys = paramiko.hostkeys.HostKeys(filename=known_hosts_file)
  File "/home/user/.local/lib/python2.7/site-packages/paramiko/hostkeys.py", line 63, in __init__
    self.load(filename)
  File "/home/user/.local/lib/python2.7/site-packages/paramiko/hostkeys.py", line 95, in load
    with open(filename, "r") as f:
IOError: [Errno 2] No such file or directory: '/home/tscollins/.ssh/known_hosts'
user@ubuntu-MP:~$ python -V
Python 2.7.16
user@ubuntu-MP:~$ cat /etc/os-release 
NAME="Ubuntu"
VERSION="19.04 (Disco Dingo)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 19.04"
VERSION_ID="19.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=disco
UBUNTU_CODENAME=disco

Same command on CentOS7 works just fine:
tscollins@ssh:~$ oauth-ssh-token authorize ga.nygenome.org
Please go to this URL and login: https://auth.globus.org/v2/oauth2/authorizeXXXXXXX
Please enter the code you get after login here: XXXXXXXXX
user@ssh:~$ python -V
Python 2.7.5
user@ssh:~$ cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 
JasonAlt commented 4 years ago

Will be in release 0.11

tscollins-nygc commented 4 years ago

Can confirm that it works on Ubuntu now: user@ubuntu-MP:$ oauth-ssh-token authorize ga.nygenome.org The authenticity of host 'ga.nygenome.org' can't be established. ED25519 key fingerprint is SHA256:bewoE5rcIl9Jvlt4lZmfCh8WvlTPt8aQEhv6VDePGoQ= Are you sure you want to continue connecting (yes/no)? yes Please go to this URL and login: https://auth.globus.org/v2/oauth2/authorizeXXXXXXX Please enter the code you get after login here: XXXXXXXXX user@ubuntu-MP:$