2

I've attempted to setup an EC2 to access the MATE desktop using port forwarding using SSM agent. I've followed instructions here. I want to use the user data script to set this up, but I can't get the ssm-user to start the vncserver.

I think the ssm-user is created when I log in, not when the script runs. In any case if I do log in when the user data script is running, the config files for the vncserver appears to be setup with root access only.

Here is my user data script so far based on other so answers:

#!/bin/bash

exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1

echo '## install mate'
amazon-linux-extras install mate-desktop1.x -y
bash -c 'echo PREFERRED=/usr/bin/mate-session > /etc/sysconfig/desktop'

echo '## install tiger vnc'
yum install tigervnc-server -y

echo '## install chromium'
amazon-linux-extras install epel -y
yum install chromium -y

echo '## setup user'
su ssm-user

export HOME=/home/ssm-user

echo '## config vnc password'
umask 0077                                       
mkdir -p "$HOME/.vnc"                            
chmod go-rwx "$HOME/.vnc"                        
vncpasswd -f <<<"some_password" >"$HOME/.vnc/passwd"

echo '## start vncserver'
vncserver :1

When I run this, the log shows:

su: user ssm-user does not exist

If I instead let the root user start the vncserver (removing the su ssm-user line) I'm able to connect using the SSM port forward session and VNC, but the desktop is blank. Guess this is as I'm logged in an ssm-user? Is there a way to setup the vncserver for the ssm-user via user data script?

Stagg
  • 2,660
  • 5
  • 34
  • 32

0 Answers0