<commit_before># Gravitational Teleport

|Project Links| Description
|---|----
| [Teleport Website](http://gravitational.com/teleport)  | The official website of the project |
| [Documentation](http://gravitational.com/teleport/docs/quickstart/)  | Admin guide, user manual and more |
| [Demo Video](https://www.youtube.com/watch?v=7eVAC2U8OtM) | 3-minute video overview of the UI. |
| [Teleconsole](http://www.teleconsole.com) | The free service to "invite" SSH clients behind NAT, built on top of Teleport |
| [Blog](http://blog.gravitational.com) | Our blog where we publish Teleport news |

## Introduction

Gravitational Teleport is a modern SSH server for remotely accessing clusters
of Linux servers via SSH or HTTPS. It is intended to be used instead of `sshd`.
Teleport enables teams to easily adopt the best SSH practices like:

- No need to distribute keys: Teleport uses certificate-based access with automatic expiration time.
- Enforcement of 2nd factor authentication.
- Cluster introspection: every Teleport node becomes a part of a cluster and is visible on the Web UI.
- Record and replay SSH sessions for knowledge sharing and auditing purposes.
- Collaboratively troubleshoot issues through session sharing.
- Connect to clusters located behind firewalls without direct Internet access via SSH bastions.
- Ability to integrate SSH credentials with your organization identities via OAuth (Google Apps, Github).
- Keep the full audit log of all SSH sessions within a cluster.

Teleport is built on top of the high-quality [Golang SSH](https://godoc.org/golang.org/x/crypto/ssh) 
implementation and it is fully compatible with OpenSSH.

## Installing and Running

Download the [latest binary release](https://github.com/gravitational/teleport/releases), 
unpack the .tar.gz and run `sudo make install`. This will copy Teleport binaries into 
`/usr/local/bin`.

Then you can run Teleport as a single-node cluster:

```bash
$ sudo teleport start 
```

In production, Teleport must run as root. But to play, just do `chown $USER /var/lib/teleport` and run it under `$USER`, in this case you will not be able to login as someone else though.

## Building Teleport

Teleport source code consists of the actual Teleport daemon binary written in Golang, and also
it has a web UI (located in /web directory) written in Javascript. The WebUI is not changed often
and we keep it checked into Git under `/dist`, so you only need to build Golang:

Make sure you have Golang `v1.7` or newer, then run:

```bash
# getting & building:
$ go get github.com/gravitational/teleport
$ cd $GOPATH/src/github.com/gravitational/teleport
$ make

# create the default data directory before starting:
$ sudo make -p /var/lib/teleport
$ sudo chown $USER /var/lib/teleport
```

If the build was successful the binaries will be in `$GOPATH/src/github.com/gravitational/teleport/build`

By default the web UI is not build into the binary, to run self-build teleport you have
to set the environment variable: `DEBUG=1`, in debug mode the web UI will be loaded from 
[web/dist](web/dist) directory.

Then you can run Teleport as a single-node cluster in development mode: 

```bash
$ DEBUG=1 build/teleport start -d
```

To build the binary with embedded web assets:

```bash<commit_msg>Changed make to mkdir.<commit_after># Gravitational Teleport

|Project Links| Description
|---|----
| [Teleport Website](http://gravitational.com/teleport)  | The official website of the project |
| [Documentation](http://gravitational.com/teleport/docs/quickstart/)  | Admin guide, user manual and more |
| [Demo Video](https://www.youtube.com/watch?v=7eVAC2U8OtM) | 3-minute video overview of the UI. |
| [Teleconsole](http://www.teleconsole.com) | The free service to "invite" SSH clients behind NAT, built on top of Teleport |
| [Blog](http://blog.gravitational.com) | Our blog where we publish Teleport news |

## Introduction

Gravitational Teleport is a modern SSH server for remotely accessing clusters
of Linux servers via SSH or HTTPS. It is intended to be used instead of `sshd`.
Teleport enables teams to easily adopt the best SSH practices like:

- No need to distribute keys: Teleport uses certificate-based access with automatic expiration time.
- Enforcement of 2nd factor authentication.
- Cluster introspection: every Teleport node becomes a part of a cluster and is visible on the Web UI.
- Record and replay SSH sessions for knowledge sharing and auditing purposes.
- Collaboratively troubleshoot issues through session sharing.
- Connect to clusters located behind firewalls without direct Internet access via SSH bastions.
- Ability to integrate SSH credentials with your organization identities via OAuth (Google Apps, Github).
- Keep the full audit log of all SSH sessions within a cluster.

Teleport is built on top of the high-quality [Golang SSH](https://godoc.org/golang.org/x/crypto/ssh) 
implementation and it is fully compatible with OpenSSH.

## Installing and Running

Download the [latest binary release](https://github.com/gravitational/teleport/releases), 
unpack the .tar.gz and run `sudo make install`. This will copy Teleport binaries into 
`/usr/local/bin`.

Then you can run Teleport as a single-node cluster:

```bash
$ sudo teleport start 
```

In production, Teleport must run as root. But to play, just do `chown $USER /var/lib/teleport` and run it under `$USER`, in this case you will not be able to login as someone else though.

## Building Teleport

Teleport source code consists of the actual Teleport daemon binary written in Golang, and also
it has a web UI (located in /web directory) written in Javascript. The WebUI is not changed often
and we keep it checked into Git under `/dist`, so you only need to build Golang:

Make sure you have Golang `v1.7` or newer, then run:

```bash
# getting & building:
$ go get github.com/gravitational/teleport
$ cd $GOPATH/src/github.com/gravitational/teleport
$ make

# create the default data directory before starting:
$ sudo mkdir -p /var/lib/teleport
$ sudo chown $USER /var/lib/teleport
```

If the build was successful the binaries will be in `$GOPATH/src/github.com/gravitational/teleport/build`

By default the web UI is not build into the binary, to run self-build teleport you have
to set the environment variable: `DEBUG=1`, in debug mode the web UI will be loaded from 
[web/dist](web/dist) directory.

Then you can run Teleport as a single-node cluster in development mode: 

```bash
$ DEBUG=1 build/teleport start -d
```

To build the binary with embedded web assets:

```bash
{'fraction_non_alphanumeric': 0.08193469636862985, 'fraction_numerical': 0.00274641440341776, 'mean_word_length': 4.3597710547833195, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 6, 'lorem ipsum': 0, 'www.': 4, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '431568', 'n_tokens_mistral': 1892, 'n_tokens_neox': 1793, 'n_words': 858}