〜/ .ssh / id_rsa.pubをコピーできません


117

私はSSHキーの生成でフォローしています、それは言います

sudo apt-get install xclip

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

xclip -selクリップ<〜/ .ssh / id_rsa.pub

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

しかし、実行したxclip -sel clip < ~/.ssh/id_rsa.pub後、Error: Can't open display: (null) 何が問題になりますか?探し回ったが何も見つからなかった


何てecho $DISPLAY言うの?
Fred Foo

何も。私はssh経由でサーバー上でこのコマンドを実行しています
Michael Pacheco

回答:


123

DISPLAY=:0 xclip -sel clip < ~/.ssh/id_rsa.pub私にとってはうまくubuntu 14.04いきませんでした()が、あなたは使うことができます:

cat ~/.ssh/id_rsa.pub

公開鍵を取得する


11
これは、sshを介してファイルの内容をコピーしようとしている人にとっては一番の答えになるはずです
dval

23
長いファイルをコピーしようとしている場合を除きます。
Flavian Hautbois 2014

26
@dval、私はそれが1番の答えであることには同意しません、なぜなら質問はxclipでのbashにSSHキーを表示するだけではない使用法について言及しているからcat ~/.ssh/id_rsa.pubです。ただし、値が表示されるときに値をコピーできるため、これは問題の解決に役立ちます。
Nik Sumeiko 2015年

123
何?!これが機能していないxclipの問題をどのように解決できますか?
VaTo

26
実際、この答えは非常に誤解を招くものです。
Hasan Can Saral 2017年

78

この質問の日付に基づいて、元の投稿者はLinux用のWindowsサブシステムを使用していなかったでしょう。しかし、あなたが同じエラーを受け取る場合、次の代替策が機能します:

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

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


8
あなたはまた、パイプを使用することができるcat ~/.ssh/id_rsa.pub | clip.eseだけで動作します
chriz

2
@chriz「exe」ではなく「ese」という意味ですか?
Marc Stober 2017

3
そうそう、それは単なるタイプミスでした。申し訳ありませんcat ~/.ssh/id_rsa.pub | clip.exe。ご指摘いただきありがとうございます。
chriz 2017

1
@Moytaba CONTROL SHIFT V.
JoanComasFdz

1
また、すべてのプラットフォームで単一のコマンドを使用したい場合は、これをyour ~/.bashrcまたは~/.bash_profile:に追加しますalias pbcopy="clip.exe"。パイプがうまく機能することを指摘してくれた@chrizに感謝し|ます。
Dio Phung

37

これはあまりにも良い回答で、ここに投稿しないでください。これは、askubuntuのユーザーであるGillesからのものです

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

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

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

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

ジル askubuntuから



10

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


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

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

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


7
わかりますError: Can't open display: :0。ちなみに、私はGit Bash経由でVPSにアクセスしています。VPSはUbuntu、ローカルマシンはWindows7です
cqcn1991

私はそう思う。しかし、私はubuntuに慣れていません。アドバイスをいただけませんか?
cqcn1991 2013

笑、私は全然支払われていません。私は代わりに猫を使用していますが、手動で作成する必要があります
cqcn1991

1
@ cqcn1991にも同じ問題があります
Nam G VU

1
を使用DISPLAY=:0 xclipすると、ジョブからクリップボードをクリアすることもできます。私の場合、atコピーの2分後にクリップボードをクリアするために使用しています。
majgis

9

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

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

8

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

ssh <user>@<host>  "cat <filepath>"|pbcopy 

pemファイルを使用しても機能します:ssh -i /path/myapp.pem <user> @ <host> "cat <filepath>" | pbcopy
alemol

4
私はpbcopyはLinuxではなくMacのものだと思った
Alexander Mills

1

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

user_to_acces = user hostName = hostname machine

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.