SSH経由でリモートデスクトップを表示(および制御)する方法はありますか?リモートホストマシンには物理的にアクセスできません。
これはvino vncサーバーとremminaで実現できます(どちらもデフォルトではubuntuに付属しています。インストールしない場合はSudo apt-get install remmina
を実行してインストールします)。次に、ターミナルプロンプトでローカルコンピューターから次のコマンドを実行します。
ssh -Y gman@remote
。信頼できるX11転送を使用します。そうしないと機能しません。
vino-preferences
。 vino-preferencesが開きます。
configure network automatically to accept connection
もクリックします。 しかし、base64でエンコードされたパスワードは入力しないでください。次に、閉じるをクリックします。次に実行します:
Sudo -s
export DISPLAY=:0.0
xhost +
/usr/lib/vino/vino-server &
Vinoサーバーが起動します。
サーバーからログアウト:
xhost -
Press CTRL+C twice
exit
exit
次にremminaを開きます。プロトコルの下でvnc
を選択します。
basic
タブで、server
フィールドにサーバーのアドレスを入力します。
[ssh]タブで[enable ssh tunnel
]をクリックします。 ssh authentication
の下では、password
またはpublic key
になります。
保存をクリックします。次に、connection-name(図に示すようにhome-desktop)をダブルクリックして、リモートデスクトップの参照を開始します。
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
ホストマシンで既にOpenSSH Server
をセットアップしていると仮定して、まずホストマシンでデスクトップ制御を有効にする必要があります。ホストマシンでデスクトップ制御を最初にローカルで有効にできる場合は、1aに進みます。最初にホストマシンでデスクトップコントロールをリモートで有効にする必要がある場合は、1bに進みます。
次に、SSHトンネルを介してホストマシンに接続し、最終的にSSHトンネルを介してホストマシンのデスクトップを表示および制御するために、クライアントマシンでリモートデスクトップクライアントプロファイルを作成します。
ホストマシンで次の手順を実行します。
vino-preferences
vino-preferences
もダッシュのDesktop Sharing
の下にありますAllow other users to view your desktop
にチェックマークを付けますAllow other users to control your desktop
にチェックマークを付けますRequire the user to enter this password
にチェックマークを付けますクライアントマシンで次の操作を行い、123.123.12.3
をホストマシンのIPアドレスに置き換えます。
ssh -Y 123.123.12.3
vino-preferences
vino-preferences
もダッシュのDesktop Sharing
の下にありますAllow other users to view your desktop
にチェックマークを付けますAllow other users to control your desktop
にチェックマークを付けますRequire the user to enter this password
にチェックマークを付けますクライアントマシンで次の手順を実行します。
remmina
Remmina Remote Desktop Client
の下のremminaCtrl+N または接続>新規
Server
と書かれている箇所に入力しますSSH
タブに切り替えますEnable SSH Tunnel
にチェックマークを付けますSSH Authentication
<username>
とモードを設定しますクライアントマシンで、<username>
のパスワードを求められたら、それを入力してSSHトンネルを作成します。 VNCパスワードの入力を求められたら、以前にホストマシンに入力したパスフレーズを入力します。
このステップで成功すると、クライアントマシンからSSHトンネルを介してホストマシンのデスクトップを表示および制御できるようになります。
次のスクリプトを使用して、リモート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"
Xnest
をX11フォーワードで使用して、セッションをリモートで開始し、現在のコンピューターに転送します。 (私はパイで時々これを行います) manページ私はXnest
を次のように使用します:
Xnest :1 -ac &
DISPLAY=:1 . /etc/X11/Xsession
@Khurshid Alamの回答に基づいて、私は次のスニペットを提示します:
ssh $TARGETHOST -L 5900:localhost:5900 "x11vnc -localhost -display :0 -noxdamage" &; sleep 10 && vinagre localhost
これは対話を必要としない1つのコマンドです
ポート転送でSSHトンネルを作成し、x11vnc
を合理的に安全な方法で開始し、VNCビューアーを起動して接続します
ターゲットホストでx11vncが必要ですが、それ以上の構成は不要です
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
に接続します。