Tidak dapat menyalin ~ / .ssh / id_rsa.pub

117

Saya mengikuti di Generating SSH Keys , katanya

sudo apt-get install xclip

Mendownload dan menginstal xclip. Jika tidak punya apt-get, Anda mungkin perlu menggunakan penginstal lain (seperti yum)

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

Menyalin konten file id_rsa.pub ke clipboard Anda

Tapi setelah saya jalankan xclip -sel clip < ~/.ssh/id_rsa.pubsaya mengerti Error: Can't open display: (null) Apa masalahnya? Saya mencari-cari di Google tetapi tidak menemukan apa pun tentang itu

cqcn1991
sumber
Apa yang echo $DISPLAYdikatakannya?
Fred Foo
tidak ada. Saya menjalankan perintah ini di server melalui ssh
Michael Pacheco

Jawaban:

123

DISPLAY=:0 xclip -sel clip < ~/.ssh/id_rsa.pubtidak berhasil untuk saya ( ubuntu 14.04), tetapi Anda dapat menggunakan:

cat ~/.ssh/id_rsa.pub

untuk mendapatkan kunci publik Anda

Jahdere
sumber
11
Ini harus menjadi jawaban nomor 1 bagi siapa saja yang mencoba menyalin konten file melalui ssh
dval
23
Kecuali saat Anda mencoba menyalin file panjang.
Flavian Hautbois
26
@dval, saya tidak setuju itu akan menjadi jawaban nomor 1, karena pertanyaan menyebutkan xclippenggunaan tidak hanya menampilkan kunci SSH di bash dengan cat ~/.ssh/id_rsa.pub. Namun, ini membantu memecahkan masalah, karena Anda dapat menyalin nilainya saat ditampilkan.
Nik Sumeiko
123
apa?! bagaimana ini bisa mengatasi masalah xclip tidak berfungsi?
VaTo
26
Sebenarnya, jawaban ini sangat menyesatkan.
Hasan Can Saral
78

Berdasarkan tanggal pertanyaan ini, poster asli tidak akan menggunakan Subsistem Windows untuk Linux . Tetapi jika ya, dan Anda mendapatkan kesalahan yang sama, alternatif berikut berfungsi:

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

Berkat halaman ini untuk menunjukkan clip.exe Windows (dan Anda harus mengetik ".exe") dapat dijalankan dari bash shell.

Marc Stober
sumber
8
Anda juga dapat menggunakan pipa cat ~/.ssh/id_rsa.pub | clip.esehanya berfungsi
chriz
2
@chriz Saya pikir yang Anda maksud "exe" bukan "ese"?
Marc Stober
3
oh iya, maaf itu hanya salah ketik cat ~/.ssh/id_rsa.pub | clip.exe. Terima kasih telah menunjukkannya.
chriz
1
@Moytaba CONTROL SHIFT V.
JoanComasFdz
1
dan bagi mereka yang lebih suka satu perintah pada semua platform: menambahkan ini ke Anda ~/.bashrcatau ~/.bash_profile: alias pbcopy="clip.exe". dan terima kasih kepada @chriz karena menunjukkan bahwa pipa |berfungsi dengan baik.
Dio Phung
37

Jawaban ini terlalu bagus untuk tidak diposting di sini. Ini dari Gilles , sesama pengguna dari askubuntu :

Clipboard disediakan oleh X server . Tidak peduli apakah server tidak memiliki headless atau tidak, yang penting adalah sesi grafis lokal Anda tersedia untuk program yang berjalan pada mesin jarak jauh. Berkat desain jaringan transparan X, hal ini dimungkinkan.

Saya berasumsi bahwa Anda terhubung ke server jarak jauh dengan SSH dari mesin yang menjalankan Linux. Pastikan penerusan X11 diaktifkan di konfigurasi klien dan di konfigurasi server. Dalam konfigurasi klien, Anda harus memiliki garis ForwardX11 yesdi ~/.ssh/configuntuk memilikinya secara default, atau memberikan opsi -Xkepada sshperintah hanya untuk sesi itu. Dalam konfigurasi server, Anda harus memiliki garis X11Forwarding yesdi /etc/ssh/sshd_config(itu hadir secara default pada Ubuntu).

Untuk memeriksa apakah X11 forwarding diaktifkan, melihat nilai dari DISPLAYvariabel lingkungan: echo $DISPLAY. Anda akan melihat nilai seperti localhost:10(aplikasi yang berjalan pada mesin jarak jauh diberitahu untuk terhubung ke layar yang berjalan pada mesin yang sama, tetapi koneksi tampilan tersebut sebenarnya diteruskan oleh SSH ke tampilan sisi klien Anda). Perhatikan bahwa jika DISPLAYtidak disetel, tidak ada gunanya menyetelnya secara manual: variabel lingkungan selalu disetel dengan benar jika penerusan ada. Jika Anda perlu untuk mendiagnosa masalah koneksi SSH, memberikan opsi -vvvuntuk sshmendapatkan jejak rinci tentang apa yang terjadi.

Jika Anda terhubung melalui beberapa cara lain, Anda mungkin dapat atau mungkin tidak dapat mencapai penerusan X11. Jika klien Anda menjalankan Windows, PuTTY mendukung penerusan X11; Anda harus menjalankan server X pada mesin Windows seperti Xming .

Oleh Gilles dari askubuntu

Carles Alcolea
sumber
17

Jika Anda mencoba menggunakan xclip pada host jarak jauh cukup tambahkan -X ke perintah ssh Anda

ssh user@host -X

Informasi lebih rinci dapat ditemukan di sini: https://askubuntu.com/a/305681

Peter Pshenichny
sumber
10

Baca dokumentasi yang Anda tautkan. Itu sangat konyol! xcliphanyalah papan klip. Anda akan menemukan cara lain untuk menyalin tempel kunci ... (Saya yakin)


Jika Anda tidak bekerja dari dalam sesi X grafis, Anda perlu meneruskan $DISPLAYenvironment var ke perintah. Jalankan seperti ini:

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

Tentu saja :0tergantung pada tampilan yang Anda gunakan. Jika Anda memiliki mesin desktop biasa, kemungkinan besar memang demikian:0

hek2mgl
sumber
7
Saya mengerti Error: Can't open display: :0. Ngomong-ngomong, saya mengakses VPS melalui Git Bash. VPS adalah ubuntu, mesin lokalnya adalah windows7
cqcn1991
Aku pikir begitu. Tapi saya tidak begitu paham dengan ubuntu. Bisakah Anda memberi saya beberapa nasihat?
cqcn1991
Lol, saya tidak dibayar sama sekali. Saya menggunakan cat intead, tetapi perlu memulainya secara manual
cqcn1991
1
Saya memiliki masalah yang sama dengan @ cqcn1991
Nam G VU
1
Menggunakan DISPLAY=:0 xclipjuga berfungsi untuk menghapus clipboard dari pekerjaan. Dalam kasus saya, saya menggunakan atuntuk menghapus clipboard dua menit setelah menyalin.
majgis
9

Coba ini dan itu akan bekerja dengan baik. Saya mengalami kesalahan yang sama tetapi pendekatan ini berhasil untuk saya:

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

Berikut ini juga bekerja untuk saya:

ssh <user>@<host>  "cat <filepath>"|pbcopy 
Dario
sumber
bekerja juga menggunakan file pem: ssh -i /path/myapp.pem <user> @ <host> "cat <filepath>" | pbcopy
alemol
4
Saya pikir pbcopy adalah masalah mac, bukan linux
Alexander Mills
1

tambahkan dengan root pengguna perintah ini: ssh user_to_acces @ hostName -X

user_to_acces = pengguna hostName = mesin nama host

Fadid
sumber