7

I have a server running Ubuntu Server 16.04, started from stock installation with SSH server. Currently, I have full access to the machine with public key SSH access. Since the machine is running non-critical resources, but I don't have easy physical access to it, I would like a non-SSH method of remote access that doesn't rely on functional upstream port-forwarding or the safety of my local machine(s) with private keys that can access the server. This would enable me to continue to manage the system and verify that it is still operational. The most evident end-to-end solution would be to use Chrome Remote Desktop. However, this seems like it would be a bit of a challenge to get setup.

I have ssh and root access to the server. With the fewest temporarily-needed packages, how can I accomplish:

  1. Installing a minimal desktop environment for Ubuntu that is compatible with Chrome Remote Desktop and provides easy shell access (I'm fairly unconcerned about which one, but it should be appropriate for a system with ancient integrated graphics)?
  2. Installing Google Chrome and its Chrome Remote Desktop app, then configuring them to act as a host (machine to be controlled) for remote access?

Then, will the Chrome Remote Desktop auto-start correctly within the desktop environment upon system reboot?

Is this plan impossible due to some incompatibility or need for physical access?

Note that my desired access requirements preclude the use of VNC or other, more typical remote access programs. The fact that Chrome Remote Desktop 'calls home' to start connections, mediated by Google, is the feature I'm most after. I may consider alternative services in the comments, but please keep answers to the Chrome Remote Desktop method.

  • 1
    I would not install anything GUI like. I would use command line ssh, scp and/or sftp tools to copy files to and from the server. " but I don't have easy physical access to it" you don't need "physical access ssh and scp are pretty easy to get access to a remote server. (mind though: if you need a VPN it gets a bit more tricky) – Rinzwind Jul 7 '16 at 14:33
  • 1
    That's the normal operational mode. However, I would like a non-SSH method of remote access that doesn't rely on functional upstream port-forwarding or the safety of my local machine(s) with private keys that can access the server. – user2943160 Jul 7 '16 at 14:59
  • I hope I understood that correctly but PUTTY can use private keys. – Rinzwind Jul 7 '16 at 15:01
  • I already use ssh and things that tunnel through it. This is to have an additional service that can tunnel out to establish a remote session. Thus, it has to call home (Google) and make itself available through that means. – user2943160 Jul 7 '16 at 15:06
9
  1. Install Chrome Remote Desktop.
  2. Get an auth code by going to https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/chromoting%20https://www.googleapis.com/auth/googletalk%20https://www.googleapis.com/auth/userinfo.email&redirect_uri=https://talkgadget.google.com/talkgadget/blank&response_type=code&client_id=440925447803-avn2sj1kc099s0r7v62je5s339mu0am1.apps.googleusercontent.com&access_type=offline&approval_prompt=force (note the client ID is from chromium) and once allowed (on the blank page), the authorization will be the code= parameter of the URL.
  3. On the headless machine run:

    $ /opt/google/chrome-remote-desktop/start-host --code="MY_AUTH_CODE" \
        --redirect-url=https://talkgadget.google.com/talkgadget/blank \
        --name="MY_REMOTE_NAME"
    
  4. Pick a PIN and use it to connect later.
  • Is the link supposed to result in a code being displayed? After I login, I get a blank page. – Trevor Dec 13 '17 at 21:15
  • The code seems to be in the URL of the blank window actually. Here's an example: chromoting-oauth.talkgadget.google.com/talkgadget/oauth/… The code is 4/gJ_BAIf5ncx7yWD56Zduwv09RLpYQu3lhaPPXTozXi4 Anonymized of course. – Trevor Dec 14 '17 at 6:23
  • It worked! I tried to click on the link above and got a code which didn't work. Then I realized that I should've use the link provided in the console after entering the PIN. That worked. – Jorj Feb 11 '18 at 8:50
  • When I run it I get Refusing to run /opt/google/chrome-remote-desktop/start-host – Lisa Feb 21 '19 at 4:42
3

Go to https://remotedesktop.google.com/headless/ and follow the instructions. This walks you through the steps you previously had to do manually from Wernight's answer.

  • 1
    To be clear to those who may think this is a link only answer, the linked page does not provide a list of instructions but makes one click through a sequence of choices to do the setup. – user68186 Jun 19 '19 at 21:22
0

Chrome Remote Desktop (CRD) requires an X Server even if the machine is headless. This is not a problem. You can use XVRB and XPRA... or other virtualized solutions, but there is not config file options or command line flags to configure CRD.

I think the most straight forward solution would be to first set up remote VNC via the usual suspects a then install/configure CRD.

If VNC really will not work for you, then you could try to script CRD with headless browser tools such as nightmare or webdriver

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.