Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Teleport usability issues #717

Closed
kontsevoy opened this issue Jan 20, 2017 · 1 comment · Fixed by #728
Closed

Teleport usability issues #717

kontsevoy opened this issue Jan 20, 2017 · 1 comment · Fixed by #728
Labels
Milestone

Comments

@kontsevoy
Copy link
Contributor

kontsevoy commented Jan 20, 2017

These things are UX issues, but they would greatly slow me down if I wasn't familiar with Teleport code.

Handling non-existent user logins

I have two trusted clusters, "master" and "appliance". Using master as my proxy:

$ tsh --proxy=master --cluster=appliance ssh bob@hostname

If bob does not exist on "hostname" this will silently fail. It does not print "Bob does not exist".

Handling Unreachable nodes

Same situation as above, try this:

$ tsh --proxy=master --cluster=appliance ssh badhost

If badhost is not reacheable (for example teleport ports are blocked via iptables) this command will:

  • It will not print a proper error message, saying "no route to badhost"
  • It will cause "master" teleport daemon to drop the tunnel connection, disconnecting "appliance" (and killing all active sessions to it!)

Access Denied Reporting

Based on either you have a session key or not, the error message is different (and cryptic).
With empty .tsh:

$ tsh --proxy=localhost ssh baduser@localhost
ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain

With session keys in .tsh:

$ tsh --proxy=localhost ssh baduser@localhost
access denied to login "bar" when connecting to localhost:3022: failed to connect to "localhost:3022@default@9598f6db-4fc4-4336-82a1-81a827049fa6"

Handling Unreachable Hosts

This is inside a local cluster:

~/go/src/github.com/gravitational/teleport: tsh --proxy=localhost ssh badhost

ERROR REPORT:
Original Error: *trace.ConnectionProblemError dial tcp: lookup badhost: no such host
Stack Trace:
	/Users/ekontsevoy/go/src/github.com/gravitational/teleport/lib/srv/proxy.go:260 github.com/gravitational/teleport/lib/srv.(*proxySubsys).proxyToHost
	/Users/ekontsevoy/go/src/github.com/gravitational/teleport/lib/srv/proxy.go:145 github.com/gravitational/teleport/lib/srv.(*proxySubsys).start
	/Users/ekontsevoy/go/src/github.com/gravitational/teleport/lib/srv/sshserver.go:834 github.com/gravitational/teleport/lib/srv.(*Server).handleSubsystem
	/Users/ekontsevoy/go/src/github.com/gravitational/teleport/lib/srv/sshserver.go:751 github.com/gravitational/teleport/lib/srv.(*Server).dispatch
	/Users/ekontsevoy/go/src/github.com/gravitational/teleport/lib/srv/sshserver.go:717 github.com/gravitational/teleport/lib/srv.(*Server).handleSessionRequests
	/usr/local/go/src/runtime/asm_amd64.s:2087 runtime.goexit
User Message: failed to connect to server <nil>

To fix: remove "stack dump" and use the normal error message.

@kontsevoy kontsevoy added the bug label Jan 20, 2017
@kontsevoy kontsevoy added this to the 1.5 milestone Jan 20, 2017
@klizhentas
Copy link
Contributor

klizhentas commented Jan 20, 2017

I think problem number 2 happens pretty much because of this line:

https://github.com/gravitational/teleport/blob/master/lib/reversetunnel/remotesite.go#L168

I think it's safe to remove this line, as it the fact that we failed to dial does not mean that connection is broken. We can just rely on the heartbeat logic here:

https://github.com/gravitational/teleport/blob/master/lib/reversetunnel/remotesite.go#L138

that will invalidate this connection after timeout what is way more reliable

kontsevoy added a commit that referenced this issue Jan 23, 2017
Fix one:

Fixed typo in defining `teleport.HOTP` constant.
This fixes bug #721

Fix two:

Removes 'drop tunnel connection' logic on any tunnel-related error. This
fixes 2nd problem "Handling Unreachable nodes" for issue #717 (see
klizhentas comment there)
hatched pushed a commit to hatched/teleport-merge that referenced this issue Nov 30, 2022
* Add two event codes for SSO test flow.

* Add tests for new events.

* Canonicalize formatting with format document.
hatched pushed a commit that referenced this issue Dec 20, 2022
* Add two event codes for SSO test flow.

* Add tests for new events.

* Canonicalize formatting with format document.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants