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


回答:


51

方法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、それは可能性がありpasswordpublic key

    レミナ設定

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


方法2:

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

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

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

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

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

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


ソース:askubuntu


遅いssh接続でvncviewer localhost::5900 -viewonly -encodings "tight" -quality 0vncviewer を使用している場合、コマンドは(Debian / Ubuntuではビューアーはtightvncから)またはvncviewer localhost::5900 -viewonly -PreferredEncoding tight QualityLevel=0(Red Hat / Fedoraではビューアーはtigervncから)次のようになります。DebianとRedhatの両方の品質レベルは0から9の間で、9が最適ですが、高速接続が必要です。
エリック14

@erik vncviewer低速接続での使用方法を説明してくれてありがとう。私は個人的には、おそらく(私が思うに)私にとってはあまりにも退屈なQualityLevel=4 or 5ので設定します。0 qualitylevel256 colors
ルシッドアラム14

1
「方法2」は、特別な永続的な設定なしで物理ディスプレイにすばやくアクセスするのに最適です。コマンドを実行したときにエラーメッセージで説明されているように-authパラメーターを追加する必要がありましたが、それ以外は完全に機能します。ありがとう!
ピエール

@gerky方法3 NoMachineになり、現在は(ないオープンソースにもかかわらず)、最速かつ無料で、あまりにもAndroid上での作業
アクエリアスパワー

1
方法2では、-auth guessrootとして使用して実行する必要がありました。とても助かります、ありがとう!
ボブカールソン

9

ソリューションの概要

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

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

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

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

vino-preferences
  • vino-preferences 下のダッシュでも Desktop Sharing

ここに画像の説明を入力してください

  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

ここに画像の説明を入力してください

  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
  • 下のダッシュでもレミーナ Remmina Remote Desktop Client

Ctrl+ Nまたは接続>新規

ここに画像の説明を入力してください

  1. IPアドレス[123.123.12.3]を入力してください Server
  2. SSHタブに切り替える

ここに画像の説明を入力してください

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

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

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

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


これは非常に包括的なようですが、ホスト上のカスタムポート12345はどこに定義されていますか?
ジョンT

説明したようにリモートクライアントを使用する前に、次のようなクライアントからsshコマンドを実行する必要があると思います。ssh -L 12345:localhost:5900 user @ server_ip
ジョンT

3

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

#!/ bin / bash
DISPLAY =:0をエクスポート
読み取り-e -p "VNCパスワード:" -i "ubuntu"パスワード
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 write / org / gnome / desktop / session / idle-delay "uint32 0"

2
  1. sshを使用してvncセッションを開始できます
  2. XnestX11の言い回しを使用して、セッションをリモートで開始し、現在のコンピューターに転送します。(私は時々piでこれを行いますmanページ

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

  • Xnest :1 -ac &
  • それから DISPLAY=:1 . /etc/X11/Xsession

0

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ビューアを起動localhostし、VNCサーバーアドレスに接続します。


以下を手に入れました。このようなものはすべて、すでにGUIコンソールにログインしていることを前提としていますか? No protocol specified 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 Cannot open display: Run 'vino-server --help' to see a full list of available command line options
藻類

0

@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

サーバーPC。

  • ターミナルから「vino-preferences」またはダッシュを使用して「デスクトップ共有」を開きます。

vino-preferences

クライアントPC(サーバーUIを制御する場所から)。

  • 以下の画像に示すように設定を保持します(ユーザー名とIPの場所で変更します)。

*基本*タブ *詳細設定タブ * SSH *タブ

落とし穴。

  • SSHを使用してリモートPCからサーバーにvino-preferencesを設定しようとすると、変更されましたが、接続は行われませんでした。サーバーマシンで(リモートではなく)直接実行する必要がありました。この動作の理由はわかりません。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.