web-dev-qa-db-ja.com

SSH経由でリモートデスクトップ共有をセットアップする方法

SSH経由でリモートデスクトップを表示(および制御)する方法はありますか?リモートホストマシンには物理的にアクセスできません。

42
gerky

方法1:

これはvino vncサーバーとremminaで実現できます(どちらもデフォルトではubuntuに付属しています。インストールしない場合はSudo apt-get install remminaを実行してインストールします)。次に、ターミナルプロンプトでローカルコンピューターから次のコマンドを実行します。

  1. ssh -Y gman@remote。信頼できるX11転送を使用します。そうしないと機能しません。

  2. vino-preferences。 vino-preferencesが開きます。

    vino-preference

  3. configure network automatically to accept connectionもクリックします。 しかし、base64でエンコードされたパスワードは入力しないでください。次に、閉じるをクリックします。次に実行します:

    Sudo -s
    
    export DISPLAY=:0.0
    
    xhost +
    
    /usr/lib/vino/vino-server & 
    

    Vinoサーバーが起動します。

  4. サーバーからログアウト:

    xhost -
    
    Press CTRL+C twice
    
    exit
    
    exit
    
  5. 次にremminaを開きます。プロトコルの下でvncを選択します。

    basicタブで、serverフィールドにサーバーのアドレスを入力します。

    [ssh]タブで[enable ssh tunnel]をクリックします。 ssh authenticationの下では、passwordまたはpublic keyになります。

    remmina-preference

    保存をクリックします。次に、connection-name(図に示すようにhome-desktop)をダブルクリックして、リモートデスクトップの参照を開始します。


方法2:

x11vncはシンプルなVNCサーバーであり、Gnomeの設定や500のファイアウォールをいじる必要はありません。すべてのコンピューターにx11vncをインストールするだけです)。

次に、ローカルコンピューターから次を実行します。

ssh user@Host -L 5900:localhost:5900 "x11vnc -display :0 -noxdamage"

明らかに、リモートコンピューターのユーザー名とホスト名/ IPのuser@Hostを交換します。

次に、選択したVNCクライアントを使用してlocalhost:5900に接続します。 SSHコマンドは、リモートコンピューターでvncサーバーを起動し、SSHを介してそのポートをトンネリングします。ポートを開く必要はありません(既にSSHできる場合)。

お使いのコンピューターの表示設定がおかしい場合は、SSHコマンドで-display :0セグメントを省略した方が良いかもしれません。 x11vncは自動的に正しいディスプレイを見つけようとします。


ソース: askubunt

47
Khurshid Alam

ソリューションの概要

ホストマシンで既にOpenSSH Serverをセットアップしていると仮定して、まずホストマシンでデスクトップ制御を有効にする必要があります。ホストマシンでデスクトップ制御を最初にローカルで有効にできる場合は、1aに進みます。最初にホストマシンでデスクトップコントロールをリモートで有効にする必要がある場合は、1bに進みます。

次に、SSHトンネルを介してホストマシンに接続し、最終的にSSHトンネルを介してホストマシンのデスクトップを表示および制御するために、クライアントマシンでリモートデスクトップクライアントプロファイルを作成します。

1a。ホストマシンのリモート制御をローカルで有効にする

ホストマシンで次の手順を実行します。

vino-preferences
  • vino-preferencesもダッシュのDesktop Sharingの下にあります

enter image description here

  1. Allow other users to view your desktopにチェックマークを付けます
  2. Allow other users to control your desktopにチェックマークを付けます
  3. Require the user to enter this passwordにチェックマークを付けます
  4. 推測しにくいパスフレーズを入力してください
  5. 閉じる

1b。ホストマシンのリモート制御をリモートで有効にする

クライアントマシンで次の操作を行い、123.123.12.3をホストマシンのIPアドレスに置き換えます。

ssh -Y 123.123.12.3
  • -Y、信頼できるX11転送を有効にします。信頼されたX11転送は、X11 SECURITY拡張制御の対象ではありません。
vino-preferences
  • vino-preferencesもダッシュのDesktop Sharingの下にあります

enter image description here

  1. Allow other users to view your desktopにチェックマークを付けます
  2. Allow other users to control your desktopにチェックマークを付けます
  3. Require the user to enter this passwordにチェックマークを付けます
  4. 推測しにくいパスフレーズを入力してください
  5. 閉じる

クライアントマシンでリモートデスクトップクライアントプロファイルを作成する

クライアントマシンで次の手順を実行します。

remmina
  • dashのRemmina Remote Desktop Clientの下のremmina

Ctrl+N または接続>新規

enter image description here

  1. IPアドレス[123.123.12.3]にServerと書かれている箇所に入力します
  2. SSHタブに切り替えます

enter image description here

  1. Enable SSH Tunnelにチェックマークを付けます
  2. デスクトップクライアントを非標準のSSHポートに向ける
  3. SSH Authentication<username>とモードを設定します
  4. つなぐ

ホストマシンの表示と制御

クライアントマシンで、<username>のパスワードを求められたら、それを入力してSSHトンネルを作成します。 VNCパスワードの入力を求められたら、以前にホストマシンに入力したパスフレーズを入力します。

このステップで成功すると、クライアントマシンからSSHトンネルを介してホストマシンのデスクトップを表示および制御できるようになります。

9
jtd

次のスクリプトを使用して、リモートssh接続からUbuntu 16.04の新規インストールを設定できました。

#!/ bin/bash 
 export DISPLAY =:0 
 read -e -p "VNC Password:" -i "ubuntu" password 
 dconf write/org/gnome/desktop/remote-access/enabled true 
 dconf write/org/gnome/desktop/remote-access/Prompt-enabled false 
 dconf write/org/gnome/desktop/remote- access/authentication-methods "['vnc']" 
 dconf write/org/gnome/desktop/remote-access/require-encryption false 
 dconf write/org/gnome/desktop/remote- access/vnc-password\"\ '$(echo -n $ password | base64)\' \" 
 dconf dump /org/gnome/desktop/remote-access/
Sudoサービスlightdm restart 

引用符は、文字列設定(引用符内の単一ティック)にとって重要です。 dconfが記述できるようにするには、XWindowsにアクセスする必要があるため、エクスポートDISPLAYパーツが必要です。この後、VNCに接続するには、まだ実際のUbuntuマシンのデスクトップにログインする必要があると思います。 dumpコマンドは、すべての設定が保持されていることを確認するためのものです。実際には必要ありません。

必要に応じて、常に表示を維持したい場合にこれを行うことができます。

 dconf write/org/gnome/desktop/screensaver/lock-enabled false 
 dconf write/org/gnome/desktop/screensaver/ubuntu-lock-on-suspend false 
 dconf/org/gnome/desktop/session/idle-delay "uint32 0" 
3
Integrator
  1. Sshを使用してvncセッションを開始できます
  2. XnestをX11フォーワードで使用して、セッションをリモートで開始し、現在のコンピューターに転送します。 (私はパイで時々これを行います) manページ

私はXnestを次のように使用します:

  • Xnest :1 -ac &
  • 次にDISPLAY=:1 . /etc/X11/Xsession
2
demure

@Khurshid Alamの回答に基づいて、私は次のスニペットを提示します:

ssh $TARGETHOST -L 5900:localhost:5900 "x11vnc -localhost -display :0 -noxdamage" &; sleep 10 && vinagre localhost

  • これは対話を必要としない1つのコマンドです

  • ポート転送でSSHトンネルを作成し、x11vncを合理的に安全な方法で開始し、VNCビューアーを起動して接続します

  • ターゲットホストでx11vncが必要ですが、それ以上の構成は不要です

  • PCにvinagreが必要ですが、別のVNCビューアーに簡単に変更できます
0
mnagel

Xを転送せずにVinoサーバーをリモートで起動する方法(コマンドラインのみ)

デスクトップを共有するユーザーとしてリモートコンピューターにログオンし、ポート5900をlocalhostの同じポートに転送します。 PuTTYでは、リダイレクトはConnection/SSH/Tunnelsで設定されます。コマンドラインでは、次を使用します。

 ssh -L 5900:localhost:5900 user@remote-computer

vino-serverがまだインストールされていない場合はインストールします。例えば:

Sudo apt install vino

デスクトップ共有を有効にします(1行目と2行目のディスプレイ番号を一致させます):

echo $DISPLAY
export DISPLAY=:0
dbus-launch --exit-with-session gsettings set org.gnome.Vino enabled true
dbus-launch --exit-with-session gsettings set org.gnome.Vino Prompt-enabled false
dbus-launch --exit-with-session gsettings set org.gnome.Vino require-encryption false
/usr/lib/vino/vino-server

VNCビューアーを起動し、VNCサーバーアドレスのlocalhostに接続します。

0
Futal