web-dev-qa-db-ja.com

エラー:ディスプレイを開けません:(null)Xclipを使用してssh公開キーをコピーする場合

SSHキーの生成 をフォローしています。

Sudo apt-get install xclip

#xclipをダウンロードしてインストールします。 apt-getがない場合は、別のインストーラーを使用する必要があるかもしれません(yumなど)

xclip -sel clip <〜/ .ssh/id_rsa.pub

#id_rsa.pubファイルの内容をクリップボードにコピーします

しかし、実行した後xclip -sel clip < ~/.ssh/id_rsa.pub私はError: Can't open display: (null)を受け取ります問題は何ですか?グーグルで探しましたが、何も見つかりませんでした

86
cqcn1991

DISPLAY=:0 xclip -sel clip < ~/.ssh/id_rsa.pubは機能しませんでした(ubuntu 14.04)が、使用できます:

cat ~/.ssh/id_rsa.pub

公開鍵を取得する

93
Jahdere

この質問の日付に基づいて、元のポスターは Linux用Windowsサブシステム を使用していなかったでしょう。ただし、同じエラーが発生する場合は、次の代替手段が機能します。

clip.exe < ~/.ssh/id_rsa.pub

このページ のおかげで、bashシェルからWindowsのclip.exe(および「.exe」を入力する必要があります)を指摘できます。

46
Marc Stober

これは 答えが良すぎる ここに投稿しないことでした。 Gillesaskubuntuの仲間のユーザーからのものです:

クリップボードは Xサーバー によって提供されます。サーバーがヘッドレスであるかどうかは関係ありません。重要なのは、ローカルグラフィカルセッションがリモートマシンで実行されているプログラムで利用できることです。 Xのネットワーク透過設計のおかげで、これは可能です。

Linuxを実行しているマシンからSSHでリモートサーバーに接続していると仮定します。クライアント構成とサーバー構成の両方でX11転送が有効になっていることを確認してください。クライアント構成では、ForwardX11 yes~/.ssh/configという行をデフォルトで有効にするか、そのセッションのためだけにsshコマンドに-Xオプションを渡す必要があります。 。サーバー構成では、X11Forwarding yes/etc/ssh/sshd_configという行が必要です(Ubuntuにはデフォルトで存在します)。

X11転送が有効になっているかどうかを確認するには、DISPLAY環境変数の値を確認します:echo $DISPLAYlocalhost:10のような値が表示されるはずです(リモートマシンで実行されているアプリケーションは、同じマシンで実行されているディスプレイに接続するように指示されますが、そのディスプレイ接続は実際にはSSHによってクライアント側ディスプレイに転送されます)。 DISPLAYが設定されていない場合、手動で設定しても意味がありません。転送が設定されている場合、環境変数は常に正しく設定されます。 SSH接続の問題を診断する必要がある場合は、オプション-vvvsshに渡して、何が起こっているかの詳細なトレースを取得します。

他の方法で接続している場合、X11転送を実現できる場合とできない場合があります。クライアントがWindowsを実行している場合、 PuTTY はX11転送をサポートします。 Xming などのWindowsマシンでXサーバーを実行する必要があります。

ByGillesaskubuntuから

23
Carles Alcolea

リモートホストでxclipを使用しようとしている場合は、sshコマンドに-Xを追加するだけです

ssh user@Host -X

より詳細な情報はここにあります: https://askubuntu.com/a/305681

15

これを試してみてください、それは魅力のように動作します。私は同じエラーを抱えていましたが、このアプローチは私のためにトリックをしました:

ssh USER@REMOTE "cat file"|xclip -i
9
VaTo

リンクしたドキュメントを読んでください。それは全くばかげている! xclipは単なるクリップボードです。キーをコピーして貼り付ける方法は他にもあります...(きっと)


グラフィカルXセッション内から作業していない場合は、$DISPLAY環境変数をコマンドに渡す必要があります。次のように実行します。

DISPLAY=:0 xclip -sel clip < ~/.ssh/id_rsa.pub

もちろん、:0は使用しているディスプレイによって異なります。一般的なデスクトップマシンを使用している場合は、:0である可能性があります

9
hek2mgl

以下も私のために働いています:

ssh <user>@<Host>  "cat <filepath>"|pbcopy 
7
Dario

ユーザーrootでこのコマンドを追加します:ssh user_to_acces @ hostName -X

user_to_acces =ユーザーhostName =ホスト名マシン

1
Fadid