Windows/Linux 通过 ssh 打开 远程服务器 GUI程序
<h2 id="背景">背景</h2><p>在 Windows + ssh(Cygwin) + Linux(运行在虚拟机中的Ubuntu) 是一个很舒服的方案,但是偶尔需要用到 图形界面。</p>
<p>如果需要通过ssh打开远程服务器端的程序,需要X11 forwarding。否则,会显示:</p>
<pre><code class="language-bash">$ gedit
Failed to connect to Mir: Failed to connect to server socket: No such file or directory
Unable to init server: Could not connect: Connection refused
(gedit:49652): Gtk-WARNING **: cannot open display:
</code></pre>
<p>经过搜索,我找到了有关的解决方案,这个方案适用于:</p>
<ul>
<li>Cygwin</li>
<li>MobaXterm</li>
<li>Putty</li>
<li>从Linux连接到Linux</li>
</ul>
<h2 id="ssh-服务器配置">ssh 服务器配置</h2>
<blockquote>
<p>这里以Ubuntu为例</p>
</blockquote>
<p>ubuntu安装ssh客户端和服务器 并做相对于配置:</p>
<pre><code class="language-bash"># 安装ssh
sudo apt-get install openssh-server -y
# 配置允许X11转发(设置 X11 有关服务)
cp /etc/ssh/sshd_config /tmp/sshd_config
## ssh 服务器添加配置
echo "X11Forwarding yes" >>/tmp/sshd_config
sudo cp /tmp/sshd_config /etc/ssh/sshd_config
# 让配置生效
sudo service ssh restart
# 如果需要 这一台主机连接到别的地方也想运行GUI程序
## ssh 客户端添加配置(ssh_config)
cp /etc/ssh/sshd_config /tmp/ssh_config
echo "ForwardAgent yes" >>/tmp/ssh_config
echo "ForwardX11 yes" >>/tmp/ssh_config
echo "ForwardX11Trusted yes" >>/tmp/ssh_config
sudo cp /tmp/ssh_config/etc/ssh/ssh_config
</code></pre>
<h2 id="ssh-客户端-的配置">ssh 客户端 的配置</h2>
<h3 id="cygwin">Cygwin</h3>
<blockquote>
<p>ref using-remote-apps、cygwin_x11_forwarding</p>
</blockquote>
<p>Cygwin的方案是比较复杂的:</p>
<ul>
<li>在Cygwin中新安装3个包:<code>xinit</code>、<code>cygutils-x11</code>、<code>xterm</code></li>
<li>启动"XWin Server":建议是在启动菜单中:<code>Cygwin-x</code> - <code>XWin server</code></li>
<li>打开Cygwin,输入:<code>export DISPLAY=:0.0</code></li>
<li>登录:<code>ssh -Y ${loginName}@{ipAddress} [-p ${port=22}]</code></li>
</ul>
<p>效果如图:<br>
<img src="https://img2020.cnblogs.com/blog/1281523/202003/1281523-20200325113601361-713794482.png" alt="" loading="lazy"></p>
<h3 id="另外一个-linux">另外一个 Linux</h3>
<blockquote>
<p>以Ubuntu为例,同上文,需要安装 ssh客户端</p>
</blockquote>
<p>Ubuntu安装ssh客户端和服务器 并做相对于配置:</p>
<pre><code class="language-bash"># 安装ssh
sudo apt-get install openssh-server -y
## ssh 客户端添加配置(ssh_config)
cp /etc/ssh/sshd_config /tmp/ssh_config
echo "ForwardAgent yes" >>/tmp/ssh_config
echo "ForwardX11 yes" >>/tmp/ssh_config
echo "ForwardX11Trusted yes" >>/tmp/ssh_config
sudo cp /tmp/ssh_config/etc/ssh/ssh_config
</code></pre>
<p>登录:<code>ssh -X ${loginName}@{ipAddress} [-p ${port=22}]</code></p>
<p>效果如图:<br>
<img src="https://img2020.cnblogs.com/blog/1281523/202003/1281523-20200325111357354-1016544976.png" alt="" loading="lazy"></p>
<h3 id="windows">Windows</h3>
<p>以下的软件为了支持图形界面,需要,额外安装有关服务:X Window 服务端 程序 XMing</p>
<blockquote>
<p>Xming只是在windows下实现了一个X服务端,X客户端还还是远程程序本身,ssh起传输作用</p>
</blockquote>
<p>运行XMing,运行后在托盘有图标,提示信息为”Xming Server:0.0” 。</p>
<p>根据登录软件的不同,具体有一些设置差异。</p>
<h4 id="putty">Putty</h4>
<p>Putty的设置很容易,只需要勾选这个设置即可:</p>
<pre><code class="language-bash">Category
└── Connection
├── SSH
└── X11 - Enable X11 forwarding
</code></pre>
<p>效果如图:<br>
<img src="https://img2020.cnblogs.com/blog/1281523/202003/1281523-20200325110123915-1937392198.png" alt="" loading="lazy"></p>
<h4 id="mobaxterm">MobaXterm</h4>
<p>MobaXterm的设置很容易,只需要勾选这个设置即可:</p>
<pre><code class="language-bash">Session
└── SSH
└── Advanced SSH settings - X11-Forwarding
</code></pre>
<p>效果如图:<br>
<img src="https://img2020.cnblogs.com/blog/1281523/202003/1281523-20200325110014343-1259463623.png" alt="" loading="lazy"></p>
</div>
<div id="MySignature" role="contentinfo">
如果说我的文章对你有用,只不过是我站在巨人的肩膀上再继续努力罢了。<br>若在页首无特别声明,本篇文章由 Schips 经过整理后发布。<br>博客地址:https://www.cnblogs.com/schips/<br><br>
来源:https://www.cnblogs.com/schips/p/12563373.html
頁:
[1]