12

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.

4
  • 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, 2016 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. Jul 7, 2016 at 14:59
  • I hope I understood that correctly but PUTTY can use private keys.
    – Rinzwind
    Jul 7, 2016 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. Jul 7, 2016 at 15:06

4 Answers 4

15
  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.
6
  • Is the link supposed to result in a code being displayed? After I login, I get a blank page.
    – Trevor
    Dec 13, 2017 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, 2017 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, 2018 at 8:50
  • When I run it I get Refusing to run /opt/google/chrome-remote-desktop/start-host
    – Lisa
    Feb 21, 2019 at 4:42
  • Does anyone know how to do this on macos?
    – e36M3
    Jun 27, 2021 at 12:27
9

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.

2
  • 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, 2019 at 21:22
  • Thanks! This is the most up-to-date solution!
    – MewX
    Apr 19, 2021 at 3:07
1

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

0

Google has a good guide for GCE that works for Debian based linux or gives hints what's the steps for the other linux distros.

1- wget https://dl.google.com/linux/direct/chrome-remote-desktop_current_amd64.deb 2- sudo dpkg --install chrome-remote-desktop_current_amd64.deb

3- For Xfce desktop:

sudo bash -c 'echo "exec /etc/X11/Xsession /usr/bin/xfce4-session" > /etc/chrome-remote-desktop-session'

4- sudo usermod -a -G chrome-remote-desktop $USER logout

5- Following instructions at https://remotedesktop.google.com/headless

0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .