Giter Club home page Giter Club logo

teleconsole's Introduction

Teleconsole

We are temporary shutting down teleconsole service.

We hope to release a better and free version using Teleport Cloud - a new platform we are working on.

Thank you.

teleconsole's People

Contributors

bishopolis avatar doomhammer avatar eldios avatar klizhentas avatar kontsevoy avatar readmecritic avatar stevengravy avatar twakes avatar webvictim avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

teleconsole's Issues

terminal size

Not sure this is just undocumented, independent from the project or just simple a limitation, but I'm wondering if it's possible to choose the size, the default is width = 80 height = 25, which is not much, how would I go around to increase that ?

Hosting a Teleconsole instance on macOS: "500 Internal Server Error: ssh: no key found"

I'm trying to play around with secure Teleconsole sessions, using macOS 10.12.6 to host. However, I receive this error when running teleconsole -vv -i JesseTG:

Giving My GitHub Username

jesse-mac% teleconsole -vv -i JesseTG                
DEBU[0000] Server: https://teleconsole.com:443, Args: []  file="clt/main.go:39" func="clt.(*App).DebugDump"
INFO[0000] Ping http://as.teleconsole.com/ping           file="geo/geo.go:41" func=geo.FindFastestEndpoint.func1
INFO[0000] Ping http://eu.teleconsole.com/ping           file="geo/geo.go:41" func=geo.FindFastestEndpoint.func1
INFO[0000] Ping http://teleconsole.com/ping              file="geo/geo.go:41" func=geo.FindFastestEndpoint.func1
INFO[0000] teleconsole.com responded in 137.243676ms     file="geo/geo.go:60" func=geo.FindFastestEndpoint
INFO[0000] Getting version from https://teleconsole.com:443  file="clt/api_client.go:71" func="clt.(*APIClient).CheckVersion"
INFO[0000] Connecting to https://teleconsole.com:443     file="clt/api_client.go:105" func="clt.(*APIClient).CheckVersion"
Starting local SSH server on localhost...
Requesting a disposable SSH proxy on teleconsole.com for JesseTG...
INFO[0001] Requesting a new session for Jesse forwarding <nil>  file="clt/api_client.go:120" func="clt.(*APIClient).RequestNewSession"
500 Internal Server Error: ssh: no key found
DEBU[0002] 
ERROR REPORT:
Original Error: *clt.HTTPClientError 500 Internal Server Error: ssh: no key found
Stack Trace:
        /private/tmp/teleconsole-20170210-20217-56o2fv/teleconsole-0.3.1/src/github.com/gravitational/teleconsole/clt/api_client.go:147 github.com/gravitational/teleconsole/clt.(*APIClient).RequestNewSession
        /private/tmp/teleconsole-20170210-20217-56o2fv/teleconsole-0.3.1/src/github.com/gravitational/teleconsole/clt/clt.go:97 github.com/gravitational/teleconsole/clt.StartBroadcast
        /private/tmp/teleconsole-20170210-20217-56o2fv/teleconsole-0.3.1/src/github.com/gravitational/teleconsole/clt/main.go:182 github.com/gravitational/teleconsole/clt.(*App).Start
        /private/tmp/teleconsole-20170210-20217-56o2fv/teleconsole-0.3.1/main.go:45 main.main
        /usr/local/Cellar/go/1.7.5/libexec/src/runtime/proc.go:192 runtime.main
        /usr/local/Cellar/go/1.7.5/libexec/src/runtime/asm_amd64.s:2087 runtime.goexit
User Message: 
  file="teleconsole-0.3.1/main.go:61" func=main.fatalIf
jesse-mac% 

(Note that my username is Jesse, with a capital J)

Explicitly Giving a Key

If I try explicitly specifying a key, this is what happens:

jesse-mac% teleconsole -vv -i ~/.ssh/id_teleconsole.pub
DEBU[0000] Server: https://teleconsole.com:443, Args: []  file="clt/main.go:39" func="clt.(*App).DebugDump"
INFO[0000] Ping http://as.teleconsole.com/ping           file="geo/geo.go:41" func=geo.FindFastestEndpoint.func1
INFO[0000] Ping http://teleconsole.com/ping              file="geo/geo.go:41" func=geo.FindFastestEndpoint.func1
INFO[0000] Ping http://eu.teleconsole.com/ping           file="geo/geo.go:41" func=geo.FindFastestEndpoint.func1
INFO[0000] teleconsole.com responded in 135.310141ms     file="geo/geo.go:60" func=geo.FindFastestEndpoint
INFO[0000] Getting version from https://teleconsole.com:443  file="clt/api_client.go:71" func="clt.(*APIClient).CheckVersion"
INFO[0000] Connecting to https://teleconsole.com:443     file="clt/api_client.go:105" func="clt.(*APIClient).CheckVersion"
ERRO[0000] ssh: no key found                             file="lib/identity.go:86" func=lib.MakeIdentity
ssh: no key found
DEBU[0000] 
ERROR REPORT:
Original Error: *errors.errorString ssh: no key found
Stack Trace:
	/private/tmp/teleconsole-20170210-20217-56o2fv/teleconsole-0.3.1/src/github.com/gravitational/teleconsole/lib/identity.go:179 github.com/gravitational/teleconsole/lib.loginFromFile
	/private/tmp/teleconsole-20170210-20217-56o2fv/teleconsole-0.3.1/src/github.com/gravitational/teleconsole/lib/identity.go:137 github.com/gravitational/teleconsole/lib.loginsFrom
	/private/tmp/teleconsole-20170210-20217-56o2fv/teleconsole-0.3.1/src/github.com/gravitational/teleconsole/lib/identity.go:82 github.com/gravitational/teleconsole/lib.MakeIdentity
	/private/tmp/teleconsole-20170210-20217-56o2fv/teleconsole-0.3.1/src/github.com/gravitational/teleconsole/clt/clt.go:72 github.com/gravitational/teleconsole/clt.StartBroadcast
	/private/tmp/teleconsole-20170210-20217-56o2fv/teleconsole-0.3.1/src/github.com/gravitational/teleconsole/clt/main.go:182 github.com/gravitational/teleconsole/clt.(*App).Start
	/private/tmp/teleconsole-20170210-20217-56o2fv/teleconsole-0.3.1/main.go:45 main.main
	/usr/local/Cellar/go/1.7.5/libexec/src/runtime/proc.go:192 runtime.main
	/usr/local/Cellar/go/1.7.5/libexec/src/runtime/asm_amd64.s:2087 runtime.goexit
User Message: 
  file="teleconsole-0.3.1/main.go:61" func=main.fatalIf
jesse-mac%

I don't remember whether or not I'm supposed to give the private or the public key, so I tried both.

jesse-mac% teleconsole -vv -i ~/.ssh/id_teleconsole    
DEBU[0000] Server: https://teleconsole.com:443, Args: []  file="clt/main.go:39" func="clt.(*App).DebugDump"
INFO[0000] Ping http://as.teleconsole.com/ping           file="geo/geo.go:41" func=geo.FindFastestEndpoint.func1
INFO[0000] Ping http://teleconsole.com/ping              file="geo/geo.go:41" func=geo.FindFastestEndpoint.func1
INFO[0000] Ping http://eu.teleconsole.com/ping           file="geo/geo.go:41" func=geo.FindFastestEndpoint.func1
INFO[0000] teleconsole.com responded in 147.816031ms     file="geo/geo.go:60" func=geo.FindFastestEndpoint
INFO[0000] Getting version from https://teleconsole.com:443  file="clt/api_client.go:71" func="clt.(*APIClient).CheckVersion"
INFO[0000] Connecting to https://teleconsole.com:443     file="clt/api_client.go:105" func="clt.(*APIClient).CheckVersion"
ERRO[0000] ssh: unmarshal error for field Keytype of type   file="lib/identity.go:86" func=lib.MakeIdentity
ssh: unmarshal error for field Keytype of type 
DEBU[0000] 
ERROR REPORT:
Original Error: *errors.errorString ssh: unmarshal error for field Keytype of type 
Stack Trace:
	/private/tmp/teleconsole-20170210-20217-56o2fv/teleconsole-0.3.1/src/github.com/gravitational/teleconsole/lib/identity.go:179 github.com/gravitational/teleconsole/lib.loginFromFile
	/private/tmp/teleconsole-20170210-20217-56o2fv/teleconsole-0.3.1/src/github.com/gravitational/teleconsole/lib/identity.go:137 github.com/gravitational/teleconsole/lib.loginsFrom
	/private/tmp/teleconsole-20170210-20217-56o2fv/teleconsole-0.3.1/src/github.com/gravitational/teleconsole/lib/identity.go:82 github.com/gravitational/teleconsole/lib.MakeIdentity
	/private/tmp/teleconsole-20170210-20217-56o2fv/teleconsole-0.3.1/src/github.com/gravitational/teleconsole/clt/clt.go:72 github.com/gravitational/teleconsole/clt.StartBroadcast
	/private/tmp/teleconsole-20170210-20217-56o2fv/teleconsole-0.3.1/src/github.com/gravitational/teleconsole/clt/main.go:182 github.com/gravitational/teleconsole/clt.(*App).Start
	/private/tmp/teleconsole-20170210-20217-56o2fv/teleconsole-0.3.1/main.go:45 main.main
	/usr/local/Cellar/go/1.7.5/libexec/src/runtime/proc.go:192 runtime.main
	/usr/local/Cellar/go/1.7.5/libexec/src/runtime/asm_amd64.s:2087 runtime.goexit
User Message: 
  file="teleconsole-0.3.1/main.go:61" func=main.fatalIf
jesse-mac% 

SSH Directory

My ~/.ssh directory looks like this:

jesse-mac% ls -la ~/.ssh
total 56
drwx------   9 Jesse  staff   306 Jan 27 20:02 .
drwxr-xr-x+ 77 Jesse  staff  2618 Jan 28 12:24 ..
-rw-------   1 Jesse  staff   701 Jan 27 20:01 authorized_keys
-rw-------   1 Jesse  staff    68 Jan 24  2017 config
-r--------   1 Jesse  staff  1766 Jan 26  2017 id_rsa
-rw-------   1 Jesse  staff   401 Oct 18  2016 id_rsa.pub
-r--------   1 Jesse  staff   464 Jan 27 20:02 id_teleconsole
-rw-------   1 Jesse  staff   100 Jan 27 20:02 id_teleconsole.pub
-rw-r--r--   1 Jesse  staff  3134 Jan 27 20:16 known_hosts
jesse-mac% 

Both of those keys are associated with my GitHub account.

Unprotected

Unprotected teleconsole works as expected but is not what I'm trying to do:

jesse-mac% teleconsole -v
INFO[0000] Ping http://as.teleconsole.com/ping           file="geo/geo.go:41" func=geo.FindFastestEndpoint.func1
INFO[0000] Ping http://eu.teleconsole.com/ping           file="geo/geo.go:41" func=geo.FindFastestEndpoint.func1
INFO[0000] Ping http://teleconsole.com/ping              file="geo/geo.go:41" func=geo.FindFastestEndpoint.func1
INFO[0000] teleconsole.com responded in 136.570202ms     file="geo/geo.go:60" func=geo.FindFastestEndpoint
INFO[0000] Getting version from https://teleconsole.com:443  file="clt/api_client.go:71" func="clt.(*APIClient).CheckVersion"
INFO[0000] Connecting to https://teleconsole.com:443     file="clt/api_client.go:105" func="clt.(*APIClient).CheckVersion"
Starting local SSH server on localhost...
Requesting a disposable SSH proxy on teleconsole.com for Jesse...
INFO[0000] Requesting a new session for Jesse forwarding <nil>  file="clt/api_client.go:120" func="clt.(*APIClient).RequestNewSession"
Checking status of the SSH tunnel...

Your Teleconsole ID: <redacted>
WebUI for this session: https://teleconsole.com/s/<redacted>
To stop broadcasting, exit current shell by typing 'exit' or closing the window.
jesse-mac% 

"picture" degrades severely when using vim

Hi,

I'm not sure this issue is caused or even directly related to vim, but for clarity heres vim details

Typically a new session starts up okay and pretty consistently the host OR client will start to see numerous not redrawn characters and stacking on top of each other.

Scrolling and split panes seem to aggravate the situation and cause the bug to trigger sooner. Once it occurs I've had some luck resizing the terminal, but its pretty hopeless at that point.

I'm hoping someone here can comment on the issue and offer some direction? I'm a big fan of this tool, though this is kinda preventing me from using it :( I'll happily put in some hours to help, hoping someone can direct my attention.

Terminal is frozen when switching network

After joining a session, I switch my wireless network. Teleconsole's terminal is frozen immediately.

It should retry to connect, or quit the session so I can reconnect manually.

web session dies shortly and needs manual refresh

Using current release and when for a while not using web interface then it needs manual refresh.
For instance shellshare activates session automatically, even I start it again and I never do not need to refresh a web site. Currently refreshing very often a web site and thus rejoining each time with session is quite problematic in case of teleconsole.

Command line option `-i` is overloaded.

Hi, this is just a "drive by" complaint. I haven't even use teleconsole; I only read about it.

I don't like that the command line option -i can take either filename or a github username.

Based on https://github.com/gravitational/teleconsole/blob/0.3.1/lib/identity.go#L136-L142 ... I think that it tries to find a file first, and if it can't, then it tries to find a github username.

I don't know if this violates the POLA, because the --help text clearly mentions the dual-personality of this command line option... But, supposing that a user somehow doesn't know that -i can grab credentials from the web... I can only imagine that the user would be VERY surprised, maybe even upset, when it goes and does just that!

Finally, consider the random, real github user named pubkey (sorry, user, for bringing you into this!) and a file named pub.key (containing Mary Smith's public key). A single omitted character could grant access to the wrong user. (Of course, there are also github users named user and usser!)

I'll run along now. In general, the 'grant access to a github user' is a great feature, keep up the good work!

No instruction for installation from source

I have 32bit linux and there are no binaries so I needed to install from source but there is no INSTALL file in the repo, I needed to install go1.7 from golang.org (I had old version that didn't have context) and run:

go get golang.org/x/crypto/ssh
go get github.com/gravitational/teleport
go get github.com/Sirupsen/logrus
go get github.com/gravitational/trace

this can be put into Makefile in deps so you can run make deps or put in INSTALL file as requirement to install from source.

Also Makefile is missing install "task".

Instructions on how to setup a teleport bastion

The README says that users can self host a teleport bastion (instead of teleconsole.com) for use with teleconsole. However, I don't find any instructions on teleport's repo. Am I missing something?

I tried running teleport start and connecting teleconsole to localhost:3080 and got "404 Not Found" error. I'm using teleport v1.1.0 and latest version of teleconsole.

ssh: unsupported key type "OPENSSH PRIVATE KEY"

Using GitHub identity to share a session does not work for me!

Version: Teleconsole 0.4.0

SSH key pair was created with following command (without passphrase) and public key was successfully added to GitHub account:

ssh-keygen -t rsa -b 2048 -f .ssh/$github_user_key

Session was created by running:

teleconsole -i $github_user

When I try to join a previously created session I'm always encountering following error:

teleconsole -vv -i ~/.ssh/$github_user_key join $session_id

Teleconsole: joining session...
ssh: unsupported key type "OPENSSH PRIVATE KEY"
DEBU[0000] 
ERROR REPORT:
Original Error: *errors.errorString ssh: unsupported key type "OPENSSH PRIVATE KEY"
Stack Trace:
	/home/myusername/.cache/yay/teleconsole/src/go/src/github.com/gravitational/teleport/lib/client/interfaces.go:61 github.com/gravitational/teleport/lib/client.(*Key).AsAgentKey
	/home/myusername/.cache/yay/teleconsole/src/go/src/github.com/gravitational/teleport/lib/client/keyagent.go:62 github.com/gravitational/teleport/lib/client.NewLocalAgent
	/home/myusername/.cache/yay/teleconsole/src/go/src/github.com/gravitational/teleport/lib/client/api.go:334 github.com/gravitational/teleport/lib/client.NewClient
	/home/myusername/.cache/yay/teleconsole/src/go/src/github.com/gravitational/teleconsole/clt/clt.go:289 github.com/gravitational/teleconsole/clt.Join
	/home/myusername/.cache/yay/teleconsole/src/go/src/github.com/gravitational/teleconsole/clt/main.go:166 github.com/gravitational/teleconsole/clt.(*App).Join
	/home/myusername/.cache/yay/teleconsole/src/go/src/github.com/gravitational/teleconsole/main.go:37 main.main
	/usr/lib/go/src/runtime/proc.go:212 runtime.main
	/usr/lib/go/src/runtime/asm_amd64.s:1358 runtime.goexit
User Message: 
  file=teleconsole/main.go:61 func=main.fatalIf

If I try to use public key, which btw does not make any sense but I had to try it out ๐Ÿ™‚:

teleconsole -vv -i ~/.ssh/$github_user_key.pub join $session_id

DEBU[0000] Server: https://teleconsole.com:443, Args: [join $session_id]  file=teleconsole/main.go:32 func=main.main
Teleconsole: joining session...
ssh: no key found
DEBU[0000] 
ERROR REPORT:
Original Error: *errors.errorString ssh: no key found
Stack Trace:
	/home/myusername/.cache/yay/teleconsole/src/go/src/github.com/gravitational/teleconsole/lib/identity.go:179 github.com/gravitational/teleconsole/lib.loginFromFile
	/home/myusername/.cache/yay/teleconsole/src/go/src/github.com/gravitational/teleconsole/lib/identity.go:92 github.com/gravitational/teleconsole/lib.MakeIdentityFromFile
	/home/myusername/.cache/yay/teleconsole/src/go/src/github.com/gravitational/teleconsole/clt/clt.go:355 github.com/gravitational/teleconsole/clt.findUserFor
	/home/myusername/.cache/yay/teleconsole/src/go/src/github.com/gravitational/teleconsole/clt/clt.go:271 github.com/gravitational/teleconsole/clt.Join
	/home/myusername/.cache/yay/teleconsole/src/go/src/github.com/gravitational/teleconsole/clt/main.go:166 github.com/gravitational/teleconsole/clt.(*App).Join
	/home/myusername/.cache/yay/teleconsole/src/go/src/github.com/gravitational/teleconsole/main.go:37 main.main
	/usr/lib/go/src/runtime/proc.go:212 runtime.main
	/usr/lib/go/src/runtime/asm_amd64.s:1358 runtime.goexit
User Message: 
  file=teleconsole/main.go:61 func=main.fatalIf

RSA Encrypted keys not recognized

While using the -i option , if the private key is encrypted , teleconsole fails to connect .

Error:
asn1: structure error: tags don't match (16 vs {class:3 tag:1 length:76 isCompound:false}) {optional:false explicit:false application:false defaultValue:<nil> tag:<nil> stringType:0 timeType:0 set:false omitEmpty:false} pkcs1PrivateKey @2

Found this as a solution to a similar problem in another application (Solution)

Do DecryptPEMBlock() like this after pem.Decode()
https://golang.org/src/crypto/x509/pem_decrypt_test.go#L15

Also, use IsEncryptedPEMBlock() to determine if decryption is needed.

Provide Snap package of teleconsole

As discussed with Ev on the phone last week. It would be great to have a package in the snap store which makes it easy for users to discover and install teleconsole.

As agreed I pushed teleconsole 0.3.1 amd64 and armhf builds to the snap store, so they can now be installed by users of Ubuntu 16.04 (and other systems supported by snappy) using the following command:-

snap install teleconsole --classic

(the 'classic confinement' model is required to allow teleconsole to 'break out' of apparmor confinement. Without it, once the user launches teleconsole, they'd be confined in a box, unable to do anything much)

Removal is as simple as:-

snap remove teleconsole

The snaps uploaded to the store were assembled from the pre-built binaries on github, with the minor necessary meta-data required by the snapcraft tool. The fact you have pre-built single binaries makes snapping this trivial.

Building the snap:-

Building teleconsole as a snap is currently affected by this bug in snapcraft. https://bugs.launchpad.net/snapcraft/+bug/1616985 . As a result I just re-used the binary build of teleconsole. Once that bug is fixed, we could have snapcraft build from source but in the meantime a re-packaged binary build works fine.

Install snapcraft which is the tool we use to build snaps.

On an up to date AMD64 Ubuntu 16.04 or 16.10 system:-

sudo apt update
sudo apt install snapcraft

snapcraft.yaml.txt

Drop the attached snapcraft.yaml (rename to remove the .txt) into a directory alongside the tarball obtained from the github release page, then run snapcraft. This will unpack the tarball and create an amd64 .snap which can be tested locally with;-

snap install teleconsole_0.3.1_amd64.snap --dangerous --classic

(the --dangerous tag is required because you're side-loading an unsigned package)

Once tested, the snap can be uploaded to the store.

Building an armhf snap is a little trickier due to this bug:- https://bugs.launchpad.net/snapcraft/+bug/1660302

Workaround for making armhf snap:-

Place the armhf tarball in a directory with the snapcraft.yaml, and modify the source line:-

source: teleconsole-v0.3.1-linux-arm.tar.gz

Run snapcraft which will erroneously spit out an amd64 (the host arch) snap.

Modify prime/meta/snap.yaml to change amd64 to armhf, then manually build the snap (which is a squashfs file) with mksquashfs:-

mksquashfs ./prime teleconsole_0.3.1_armhf.snap -noappend -comp xz -no-xattrs -all-root

Once you're happy with the builds process, we should hook up github to travis-ci or launchpad to send tip-of-git builds to the edge channel in the store. This will enable adventurous users to test your latest builds really easily by adding --edge to their install line. That's documented at http://snapcraft.io/docs/build-snaps/ci-integration

Happy to help if any of this is unclear.

termux support

Sitting on my chromebook and loving termux. Thought to myself, teleconsole would be awesome. Can't determine the platform

No worries if this is tossed aside, it would be awesome though

Cheers, keep up the great work

Session timeout

I did not find in the documentation how to set the sessions timeout (default seems to be 30 minutes).
Is there a way to set it? is it server side ( ie. impossible to change for the https://eu.teleconsole.com proxy ) or client side?
We are running long builds and we never are able to see the end.
Thank you

feature request: create session with own name and password

Please create an option to start session with own name and password, e.g.
teleconsole --room MY-ROOM --password MY-PASS
... or similar to get a simple way to start a session with limited access.
Similar behaviour has e.g. shellshare.
This would mitigate the situation where there is need to type that long hash again and it is quite time consuming and typos are easily coming.
Also sharing new session under previously agreed name would be useful, especially for teaching purposes using e.g. course name, code, etc.

Provide a method for leaving the session

I would like to have a session have clients leave. It seems that I can close my window and then join from another window, but I cannot exit a session and rejoin later. the exit command kills the session for all monitored clients. Am I missing something obvious? Like the old control-] in telnet?

Feature request: session ID in env var?

It would be exceedingly helpful if the session/Web ID could be placed in an envvar, allowing things like the PS1 prompt to make use of it to display a link and such. Currently, it only contains the session ID, which is different.

Trying to setup teleconsole in alpine

To reproduce:

$ docker run -it alpine sh
 # now from inside alpine container
apk add wget sudo
wget https://github.com/gravitational/teleconsole/releases/download/0.4.0/teleconsole-v0.4.0-linux-amd64.tar.gz
tar xf teleconsole-v0.4.0-linux-amd64.tar.gz
./teleconsole

results in the following error: sh: ./teleconsole: not found.

Can also check the recorded shell here: https://asciinema.org/a/236995

404 while joining newly-created session

Using the latest 0.4.0 release on AMD64, joining a session either via teleconsole join or via the web no longer works, but the session is created successfully.

Hand-shaking with public keys + GitHub flow

One killer feature imho would be supporting hand-shaking with a private / public key scheme. To make things even better, what about this:

  1. I say I am someone, say, @henvic, on GitHub by typing "teleconsole login henvic"
  2. I try to join a session by someone else
  3. this someone else sees "GitHub user @henvic has requested to join. Allow? [y/n]" (see #1)

This can easily be done with https://developer.github.com/v3/users/keys/

When I try to do "teleconsole login" it should test if I have any keys associated with the given user.

Nice tool. Congratulations.

build failing


go build
# github.com/gravitational/teleconsole/clt
clt/clt.go:168: not enough arguments in call to sshClient.SSH
clt/clt.go:209: not enough arguments in call to siteAPI.GetSessions
clt/clt.go:304: cannot use &cas[i] (type *services.CertAuthority) as type *services.CertAuthorityV1 in argument to tc.AddTrustedCA
clt/clt.go:314: not enough arguments in call to tc.Join

Feature request: expose forwarded port via teleconsole.com

I am using the golang tool Hugo to make static web sites.

But i need to allow third party servers to validate my code that is running locally.
For example:
https://validator.ampproject.org/#url=http%3A%2F%2Flocalhost%3A1313%2F

This validator is run by google, and wants to validate my html code thats running on my local web server.

Another example is when I want to allow saucelabs access to my local web server, so thex can run my code on one of their mobile phones.

From what i can see teleconsole will not allow this to work at it is ?

BTW thanks for making this. Really useful.

Regards

joe

arm64

Hi guys
First at all - thanks for a such great product

I have trouble with compiling on arm64 device (odroid c2)


~/go/src/github.com/gravitational/teleconsole $ go build
# github.com/gravitational/teleport/vendor/github.com/kr/pty
../teleport/vendor/github.com/kr/pty/pty_linux.go:34: undefined: _C_uint
../teleport/vendor/github.com/kr/pty/pty_linux.go:43: undefined: _C_int
# github.com/gravitational/teleport/vendor/github.com/boltdb/bolt
../teleport/vendor/github.com/boltdb/bolt/db.go:85: undefined: maxMapSize
../teleport/vendor/github.com/boltdb/bolt/db.go:85: invalid array bound maxMapSize

Can you help ?
Thanks

Sharing session using file-based identity requires the private key

Using the -i command line switch with an identity file requires providing the private SSH key, and proceeds to derive the public key from it.

Unless I'm missing how the keys are used, that doesn't seem to be the implied functionality from the blog post.

Example:

teleconsole -i ~/.ssh/id_tele.pub -vv
DEBU[0000] Server: https://teleconsole.com:443, Args: []  file=clt/main.go:39 func=clt.(*App).DebugDump
INFO[0000] Ping http://eu.teleconsole.com/ping           file=geo/geo.go:41 func=geo.FindFastestEndpoint.func1
INFO[0000] Ping http://as.teleconsole.com/ping           file=geo/geo.go:41 func=geo.FindFastestEndpoint.func1
INFO[0000] Ping http://teleconsole.com/ping              file=geo/geo.go:41 func=geo.FindFastestEndpoint.func1
INFO[0000] eu.teleconsole.com responded in 473.992811ms  file=geo/geo.go:60 func=geo.FindFastestEndpoint
INFO[0000] Getting version from https://eu.teleconsole.com:443  file=clt/api_client.go:71 func=clt.(*APIClient).CheckVersion
INFO[0002] Connecting to https://eu.teleconsole.com:443  file=clt/api_client.go:105 func=clt.(*APIClient).CheckVersion
ERRO[0002] ssh: no key found                             file=lib/identity.go:86 func=lib.MakeIdentity
ssh: no key found
DEBU[0002] 
ERROR REPORT:
Original Error: *errors.errorString ssh: no key found
Stack Trace:
	/home/ekontsevoy/go/src/github.com/gravitational/teleconsole/lib/identity.go:179 github.com/gravitational/teleconsole/lib.loginFromFile
	/home/ekontsevoy/go/src/github.com/gravitational/teleconsole/lib/identity.go:137 github.com/gravitational/teleconsole/lib.loginsFrom
	/home/ekontsevoy/go/src/github.com/gravitational/teleconsole/lib/identity.go:82 github.com/gravitational/teleconsole/lib.MakeIdentity
	/home/ekontsevoy/go/src/github.com/gravitational/teleconsole/clt/clt.go:72 github.com/gravitational/teleconsole/clt.StartBroadcast
	/home/ekontsevoy/go/src/github.com/gravitational/teleconsole/clt/main.go:182 github.com/gravitational/teleconsole/clt.(*App).Start
	/home/ekontsevoy/go/src/github.com/gravitational/teleconsole/main.go:45 main.main
	/opt/go/src/runtime/proc.go:192 runtime.main
	/opt/go/src/runtime/asm_amd64.s:2087 runtime.goexit
User Message: 
  file=teleconsole/main.go:61 func=main.fatalIf

For reference it does work using teleconsole -i ~/.ssh/id_tele.

This means that both client and server need to have the private key for this to work which kind of defeats the purpose.

Offer functionality like sshuttle

sshuttle is very easy to get VPN, but it works only if you get an access to external the ssh server (preferably on custom port 443). Perhaps it wouldn't be that difficult to make teleconsole launch the sshuttle session. Maybe it even doesn't need any work on your part, except for writing how to do it.

Anyway, it is a great program and brilliant idea. Thank you very much for doing it.

Read-only sessions

As specified in the Roadmap. This issue is just here for tracking progress of that roadmap item. Curious to know of any updates/progress on this front!

Specify teleconsole local listening port

Is there a way to specify what port(s) teleconsole should listen on? after running # teleconsole
random ports are used. For example:

# netstat -ntlup | grep -i teleconsole
tcp        0      0 127.0.0.1:43119         0.0.0.0:*               LISTEN      1461/teleconsole    
tcp        0      0 127.0.0.1:44529         0.0.0.0:*               LISTEN      1461/teleconsole    
tcp        0      0 127.0.0.1:36695         0.0.0.0:*               LISTEN      1461/teleconsole    
tcp        0      0 127.0.0.1:33596         0.0.0.0:*               LISTEN      1461/teleconsole

It would be very handy for systems with firewalls active to be able to always start teleconsole with specific ports so they can be allowed through the firewall.

Connecting behind a proxy

Has anyone had any luck connecting to teleconsole behind a corporate proxy? I have even tried by setting 'http_proxy' and 'https_proxy', however I'm not able to.

Thanks,
Victor.

Build fails

$ go get -u github.com/gravitational/teleconsole

# github.com/gravitational/teleconsole/clt
.gopath/src/github.com/gravitational/teleconsole/clt/clt.go:88: not enough arguments in call to integration.NewInstance
	have (string, string, []int, nil, nil)
	want (string, string, string, []int, []byte, []byte)
.gopath/src/github.com/gravitational/teleconsole/clt/clt.go:114: tconf.Proxy.DisableWebUI undefined (type service.ProxyConfig has no field or method DisableWebUI)
.gopath/src/github.com/gravitational/teleconsole/clt/clt.go:168: cannot use func literal (type func(io.ReadWriteCloser) (bool, error)) as type client.ShellCreatedCallback in assignment
.gopath/src/github.com/gravitational/teleconsole/clt/main.go:47: undefined: utils.InitLoggerCLI
.gopath/src/github.com/gravitational/teleconsole/clt/main.go:57: undefined: utils.InitLoggerVerbose
.gopath/src/github.com/gravitational/teleconsole/clt/main.go:62: undefined: utils.InitLoggerDebug

I attempted to use make to build, but still got an error:

$ make

make -C version
make[1]: Entering directory '/home/demizer/.gopath/src/github.com/gravitational/teleconsole/version'
make[1]: Leaving directory '/home/demizer/.gopath/src/github.com/gravitational/teleconsole/version'
CGO_ENABLED=1 go build -i -ldflags -w -o out/teleconsole
# github.com/gravitational/teleconsole/clt
clt/clt.go:88: not enough arguments in call to integration.NewInstance
	have (string, string, []int, nil, nil)
	want (string, string, string, []int, []byte, []byte)
clt/clt.go:114: tconf.Proxy.DisableWebUI undefined (type service.ProxyConfig has no field or method DisableWebUI)
clt/clt.go:168: cannot use func literal (type func(io.ReadWriteCloser) (bool, error)) as type client.ShellCreatedCallback in assignment
clt/main.go:47: undefined: utils.InitLoggerCLI
clt/main.go:57: undefined: utils.InitLoggerVerbose
clt/main.go:62: undefined: utils.InitLoggerDebug
make: *** [Makefile:16: out/teleconsole] Error 2

Teleconsole fails when running against teleport server 2.6.0

Hi,

for a pair programming endeavour, I setup my own teleport server.

After some time, I could piece everything together.
Now, I tried teleconsole -s teleport.myserver.com and it just fails at me.

I looked into the code, and it seems these projects have completely gone out of sync.

Any chance this could be fixed?

I also tried the other branch, but the same problems. The API you are calling from the, for example GET /api/version or POST /api/sessions does not exist on my teleport server.

SSH tunnel cannot be established

Seeing below error very frequently.

$teleconsole
Starting local SSH server on localhost...
Requesting a disposable SSH proxy on as.teleconsole.com for yhsarma...
Checking status of the SSH tunnel...
SSH tunnel cannot be established, please try again.

Service is down

$ teleconsole join xxxxxxxxxxxxxxxxxxxxxxxx
Teleconsole: joining session...
dial tcp 13.78.141.196:42713: getsockopt: connection refused

feature request: view current session ID again

Currently only in the beginning when you start a session, you will see a session ID and WebUI URL. It would be nice if there could be a way to see current session ID and URL with a command.
E.g.:
teleconsole --session
teleconsole --id
... or similar.
If I have used a terminal for a while - there might be necessary to check the session ID again in order to share it.
Then there would be possible to pipe it e.g. to pastebinit to get that ID and no need to retype it and avoid mistakes. Currently the most challenging is to type the session ID again because I cannot copy it: using .e.g virtual machine or just pure console without GUI.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.