Commit graph

56 commits

Author SHA1 Message Date
Ev Kontsevoy a8889271c6 Finished polish of tsh login
This commit:

* Improves on the previous commit on better name resolution by the proxy
  (and fixes a bug introduced by the previous commit)

* Removes 'host_login' from tsh client profile. Closes #729
2017-01-29 17:52:42 -08:00
Ev Kontsevoy bd80127fac Fixed tests 2017-01-28 18:06:12 -08:00
Ev Kontsevoy 4a07dd3e22 Improved CLI login procedure
This commit adds several improvements to how CLI SSH login works

- Validated keys are added to the SSH agent [1]
- tsh will does not verify host keys twice anymore
- error messages for "access denied" look clean now

[1] This is huge. This means that tsh login can "feed" the keys to the
    built-in SSH agents of the OS and OpenSSH can fetch them from there.

QUESTION: why do we even need `tsh agent` option then? ssh-agent is
installed on every Linux/OSX machine.
2017-01-24 19:54:41 -08:00
Ev Kontsevoy ac205ad530 Finished cleaning up storage back-ends
I hope this closes #688
2017-01-15 23:23:37 -08:00
Ev Kontsevoy 7040331660 Fixed all tests
Also replaced mailgun.FrozenTime with `clockwork` in a few places
(mailgun's frozen time still remains elsewhere)
2017-01-15 16:28:18 -08:00
Sasha Klizhentas 5eedbea1ad fix integration tests 2016-12-30 14:47:52 -08:00
dmitri 53e059a11a Add context support to ProxyClient.ConnectToNode to be able to timeout the connection.
The method is otherwise blocking and might hang upon establishing a connection if the other side closes the connection.
2016-12-23 20:50:32 +01:00
Sasha Klizhentas dfd58dccb6 several fixes 2016-12-20 11:04:11 -08:00
Sasha Klizhentas 5abf6d44d5 continue fixing tests and code 2016-12-18 16:58:53 -08:00
Ev Kontsevoy 7964bfc54e Client profiles for TSH 2016-10-22 12:54:16 -07:00
Ev Kontsevoy 1a8ea95633 Merge pull request #526 from gravitational/ev/client
Support for "allocate TTY" option when launching commands via SSH
2016-09-12 12:31:09 -07:00
Ev Kontsevoy 155c53965e Small changes to the "integration" package
This is to support Teleconsole/Telecast features, namely:

- When a user is added programmatically, it's actually returned.
- When a server is being created, it will not create users if
  they exist already, instead it will just sign their public keys
2016-09-11 19:33:52 -07:00
Ev Kontsevoy a6127227f3 Proper handling of attached/detached terminals
Also Teleport now will try to get the type of terminal you're already
on, looking at $TERM
2016-09-10 21:59:16 -07:00
Ev Kontsevoy c7b4934553 Implemented a new Teleport option: "no recording"
Teleport configuration now has a new field: NoAudit (false by default,
which means audit is always on).

When this option is set, Teleport will not record events and will not
record sessions.

It's implemented by adding "DiscardLogger" which implements the same
interface as teh real logger, and it's plugged into the system instead.

NOTE: this option is not exposed in teleport in any way: no config file,
no switch, etc. I quickly needed it for Telecast.
2016-09-05 22:12:57 -07:00
Ev Kontsevoy 2659e4e350 Fixed severe timer leak
Without this leak Teleport CPU utilization is very slowly increasing
over time.
2016-08-28 17:31:57 -07:00
Ev Kontsevoy 853ce11b74 Minor changes
- Improved integration testing
- Added more logging around weird tunnel connectivity issue
2016-08-28 14:01:57 -07:00
Ev Kontsevoy 2646002a51 Improvement to help aid debugging
- Added more trace.Wrap() calls
- Added callback to control shell creation/destruction
2016-08-21 21:49:24 -07:00
Ev Kontsevoy 2f60436d5f Minor bug with integration tests 2016-08-17 17:06:59 -07:00
Ev Kontsevoy 42fceeaa87 Minor change in integration tests 2016-06-28 17:08:03 -07:00
Ev Kontsevoy 4a635ec949 Added "seed_config" configuration flag
Teleport YAML config now has a new configuration variable for internal
use by Gravitational:

```yaml
teleport:
   seed_config: true
```

If set to 'true', Teleport treats YAML configuration simply as a seed
configuration on first start.

If set to 'false' (default for OSS version), Teleport will throw away
its back-end config, treating YAML config as the only source of truth.

Specifically, for now, the following settings are thrown away if not
found in YAML:

- trusted authorities
- reverse tunnels
2016-06-17 11:55:22 -07:00
Sasha Klizhentas fba07c4f17 add support for passing env variables, fixes #451 2016-06-10 09:38:19 -07:00
Ev Kontsevoy 92b30c3c77 Configuration changes
1. data_dir is now a global setting in teleport.yaml (instead of being
   inside of "storage" sub-section)

2. changing data_dir in one place causes all of teleport to use it,
   not just bolt backends.

3. moving auth server to listen on non-default ports properly adjusts
   the global auth_servers setting

4. `tctl` now accepts -c flag just like Teleport, so you can pass
   `teleprot.yaml` to it.

Fixes #432
Fixes #431
Fixes #430
2016-05-31 14:58:55 -07:00
Ev Kontsevoy dc87ef5aec Clean error reporting for SSH exec
- stdout and stderr are separated
- exit status is inherited by tsh
2016-05-24 18:00:26 -07:00
Ev Kontsevoy 64393d8d27 Fixed tests 2016-05-20 20:09:13 -07:00
Ev Kontsevoy ab278f0a06 TunClient changes
TunClient always tries to dial the statically configured auth server
first, before trying "discovered" ones.

The rationale is that --auth flag must override whatever dynamic auth
servers have been discovered (because sometimes their IPs are wrong, if
advertise-ip was misconfigured)

Closes #416
Fixes #416
2016-05-20 19:38:20 -07:00
Ev Kontsevoy 49256d1c23 Merge remote-tracking branch 'origin/master' into ev/multi-role
Conflicts:
	lib/auth/tun.go
2016-05-17 10:53:36 -07:00
Ev Kontsevoy 23b3565f3a Started work on self-reconnecting reverse tunnels 2016-05-11 13:17:13 -07:00
Ev Kontsevoy 0b26b7fc47 Teleport Host Certificates support multiple roles now
Teleport CA-signed host certificates used to support only one
server role per cert.

This commit adds the ability to store multiple roles in a
certificate, paving the road for multi-role node support in
a near future.
2016-05-10 20:27:18 -07:00
Ev Kontsevoy bd9ad5782c Merge remote-tracking branch 'origin/master' into ev/log 2016-05-08 11:53:57 -07:00
Ev Kontsevoy b175d92052 PR comments - implemented! 2016-05-07 21:51:35 -07:00
Ev Kontsevoy e10612028e Preparations for a PR
Fixes #394
2016-05-06 20:48:02 -07:00
Ev Kontsevoy f27e207afc Replaced weg sockets with HTTP POST/GET chunks 2016-05-05 23:51:56 -07:00
Ev Kontsevoy d1f6e5e479 Bufix in CLI session player
- it now correctly sets its window size on "play"
2016-05-04 22:17:24 -07:00
Ev Kontsevoy fc317d781f Integration test for audit log 2016-05-04 16:49:59 -07:00
Ev Kontsevoy d334f6e3be Brought back all uncommented tests 2016-05-01 01:36:21 -07:00
Ev Kontsevoy 4bed72d50b Intermediate commit:
- Finished (roughly) audit logs + events
- Started covering this with tests
2016-04-26 23:28:58 -07:00
Ev Kontsevoy e28f21922c Certificate TTL improvements
1. Server now always uses UTC timestamps for certificates it ussues
2. Client doesn't store cert validBefore time in separate files, it
   parses the cert itself.

Fixes #370
2016-04-19 16:09:22 -07:00
Ev Kontsevoy 9e5ea47732 PR code review suggestions 2016-04-19 10:37:46 -07:00
Ev Kontsevoy 9869c5cd01 Fixed integration tests 2016-04-19 02:08:07 -07:00
Ev Kontsevoy 8cb2716373 Refactoring of reverse tunnel agent
- reduced number of goroutines
- reduced number of 'sleep constants', settling on just one:
  `defaults.HeartbeatPeriod`
- increased the interval

Fixes #358
2016-04-17 15:45:24 -07:00
Ev Kontsevoy e4023519d0 Fixed integration builds under Jenkins
... had to give TTY to Docker container which executed the test
2016-04-14 15:03:47 -07:00
Ev Kontsevoy 42c4eaf269 Addded integration tests for:
- interactive SSH (with shell)
- joining sessions
2016-04-14 14:17:56 -07:00
Ev Kontsevoy 0dcdc4c278 Added ability to specify which console to use
...by teleport clients + servers, meaning:

1. Servers do not default to stdout when printing startup messages
2. Clients can use arbitrary input/output instead of stdin/stdout when
   doing SSH/join. This helps with integration testing.
2016-04-14 13:56:53 -07:00
Ev Kontsevoy 7252f223ca Intermediate commit 2016-04-14 13:56:53 -07:00
Ev Kontsevoy 3d42e3d636 Prepared previous commits for merging into master
- Fixed all tests
- Removed "magic constants" in random places
- Improved 'retry connecting to auth server' logic (it used to always
  fail on 1st attempt)
2016-04-11 16:32:38 -07:00
Ev Kontsevoy 31951cb1e4 Incorporated 'testauthority' into integration tests 2016-04-11 16:32:38 -07:00
Ev Kontsevoy c0ba0cffff Dynamic ports for integration testing 2016-04-11 16:32:38 -07:00
Ev Kontsevoy 6ac710f308 Nicer inetgration package 2016-04-11 16:32:37 -07:00
Ev Kontsevoy a9b193222a Added explicit tunnel access to integratin testing 2016-04-11 16:32:37 -07:00
Ev Kontsevoy 4cdaaa46a3 Teleport won't look for web assets
... when executing simple commands like 'status' or 'version'
2016-04-11 16:32:37 -07:00