I've been getting some problems with the X11 forwarding feature. Basically, I have a Manjaro machine with SSH installed and my goal is to foward the content of this machine to another. What would be the main settings I should pay attention to?

I have been reading countless tutorials and even trying to implement them but somehow the information provided is too generic and I'd appreciate if I could get a better understanding of the process revolving around X11 and how to properly set it up.

Thanks in advance.

  • 2
    Did you set up the SSH connection? – Biswapriyo Feb 14 at 21:00
  • How are you connecting to SSH, what is the other computer, what means "foward the content", what have you tried. – harrymc Feb 14 at 21:19
  • 1
    This question is pretty vague in its current form. You're basically asking for a tutorial without telling us what's wrong with all the other tutorials that you've read. You should edit your question to describe in detail what you've tried and what happens when you try it. Include any error messages that you're getting. – Kenster Feb 14 at 23:14
  • @Kenster - Sorry for the generic question. I am sure I didn't take enough time to come up with a more specific question regarding what I'm currently facing. The point is that I'm looking for an overview regarding this matter and maybe (based on the insight provided) I'll be able to figure out what's going on. However, it was my mistake not to provide enough information about what I'm dealing with now. – João Victor Feb 15 at 0:01
  • Thanks @Biswapriyo for asking. I do have set up SSH server on one of my machines. Everything is working fine there. For this scenario, I'll name machines A and B. From machine A, I want to connect to machine B and be able to forward machine's B programs back to machine A graphically. However, X11 related settings must be done. – João Victor Feb 15 at 0:05

Install openssh on both machines.

2 steps: Setting up the ssh server, then forwarding X.

Client refers to the other machines, and server refers to the Manjaro machine.

Setting up the ssh server

  1. Install openssh-server
  2. Check sshd (the server process) is running with pgrep sshd (Will output nothing if sshd isn't running).
  3. Ensure you have either a very strong password, or disable password authentication and use key forwarding by editing /etc/ssh/sshd_config and changing PasswordAuthentication yes to PasswordAuthentication no, then sudo restart ssh.
  4. Ensure you can log into the server from the client via ssh.

X forwarding

Follow the instructions in this answer. Copied here:

"On the client side, the -X (capital X) option to ssh enables X11 forwarding, and you can make this the default (for all connections or for a specific conection) with ForwardX11 yes in ~/.ssh/config.

On the server side, X11Forwarding yes must specified in /etc/ssh/sshd_config. Note that the default is no forwarding (some distributions turn it on in their default /etc/ssh/sshd_config), and that the user cannot override this setting.

The xauth program must be installed on the server side. If there are any X11 programs there, it's very likely that xauth will be there. In the unlikely case xauth was installed in a nonstandard location, it can be called through ~/.ssh/rc (on the server!).

Note that you do not need to set any environment variables on the server. DISPLAY and XAUTHORITY will automatically be set to their proper values. If you run ssh and DISPLAY is not set, it means ssh is not forwarding the X11 connection.

To confirm that ssh is forwarding X11, check for a line containing Requesting X11 forwarding in the ssh -v -X output. Note that the server won't reply either way, a security precaution of hiding details from potential attackers."

Make sure you restart sshd after changing settings to /etc/ssh/sshd_config

cat /var/run/sshd.pid | xargs kill -1

  • 1
    Thanks for the input @BlueDrink9. I'm definitely reading more into your comment so that I can try to figure out what's going on. From machine A, I connect to machine B doing ssh -X username@ip and it connects without a problem. However, whenever I issue firefox from te terminal, I get the following error: Unable to init server: Broadway display type not supported: localhost:0.0 Error: cannot open display: localhost:0.0 – João Victor Feb 15 at 0:12
  • 1
    When I type echo $DISPLAY, it shows localhost:0.0. This is the result for the zsh shell. As I turn to bash, the result is :0.0. I have read that we should add to ~/.bashrc the line export DISPLAY=0.0. I haven't done anything with zsh as I have focused on bash for this. Everytime I change on the bashrc, the display variable is altered accordingly. However, I can't forward anything graphically as I connect to this machine. – João Victor Feb 15 at 0:23
  • A little bit of what I have enabled on my manjaro SSH server (sshd_config) file: AllowAgentForwarding yes AllowTcpForwarding yes #GatewayPorts no X11Forwarding yes X11DisplayOffset 10 X11UseLocalhost no #PermitTTY yes PrintMotd no # pam does that #PrintLastLog yes #TCPKeepAlive yes #PermitUserEnvironment no #Compression delayed #ClientAliveInterval 0 #ClientAliveCountMax 3 #UseDNS no #PidFile /run/sshd.pid #MaxStartups 10:30:100 #PermitTunnel no #ChrootDirectory none #VersionAddendum none – João Victor Feb 15 at 0:28
  • Do you have ForwardX11 yes in ~/.ssh/config on machine A (client)? – BlueDrink9 Feb 15 at 2:46
  • What is the output on the server of which xauth – BlueDrink9 Feb 15 at 2:59

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.