~ / .Ssh / id_rsa.pub kopyalanamıyor


119

SSH Anahtarları Oluşturma bölümünde takip ediyorum diyor

sudo apt-get install xclip

Xclip'i indirir ve yükler. Eğer sahip değilseniz apt-get, başka bir yükleyici kullanmanız gerekebilir (gibi yum)

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

İd_rsa.pub dosyasının içeriğini panonuza kopyalar

Ama sonra çalıştırmak xclip -sel clip < ~/.ssh/id_rsa.pubalıyorum Error: Can't open display: (null) sorunu nedir? Google'da dolaştım ama bunun hakkında hiçbir şey bulamadım


Ne echo $DISPLAYdiyor?
Fred Foo

hiçbir şey değil. Bu komutu ssh üzerinden bir sunucuda çalıştırıyorum
Michael Pacheco

Yanıtlar:


125

DISPLAY=:0 xclip -sel clip < ~/.ssh/id_rsa.pubbenim için çalışmadı ( ubuntu 14.04), ancak şunu kullanabilirsiniz:

cat ~/.ssh/id_rsa.pub

genel anahtarınızı almak için


11
Bu, dosya içeriklerini ssh
dval

23
Uzun bir dosyayı kopyalamaya çalıştığınız zamanlar hariç.
Flavian Hautbois

26
@dval, bunun 1 numaralı cevap olacağına katılmıyorum çünkü soru xclipsadece SSH anahtarını bir bash ile göstermekten bahsetmiyor cat ~/.ssh/id_rsa.pub. Ancak bu, sorunun çözülmesine yardımcı olur çünkü görüntülendiğinde değeri kopyalayabilirsiniz.
Nik Sumeiko

124
ne?! xclip'in çalışmaması sorununu nasıl çözebilir?
VaTo

26
Aslında bu cevap son derece yanıltıcıdır.
Hasan Can Saral

78

Bu sorunun tarihine göre, orijinal poster Linux için Windows Alt Sistemini kullanıyor olmayacaktı . Ancak öyleyseniz ve aynı hatayı alırsanız, aşağıdaki alternatif çalışır:

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

Windows 'clip.exe'yi işaret ettiğiniz için bu sayfa sayesinde (ve ".exe" yazmanız gerekir) bash kabuğundan çalıştırılabilir.


8
ayrıca boruları da kullanabilirsinizcat ~/.ssh/id_rsa.pub | clip.ese
chriz

2
@chriz Sanırım "exe" demek "ese" değil mi?
Marc Stober

3
oh evet, üzgünüm bu sadece bir yazım hatasıydı cat ~/.ssh/id_rsa.pub | clip.exe. Bunu belirttiğiniz için teşekkürler.
chriz

1
@Moytaba CONTROL SHIFT V.
JoanComasFdz

1
ve tüm platformlarda tek bir komutu tercih edenler için: bunu ~/.bashrcveya ~/.bash_profile: öğenize ekleyin alias pbcopy="clip.exe". ve @chriz'e boru |işlerini işaret ettiği için teşekkürler .
Dio Phung

37

Bu, burada yayınlamamak için çok iyi bir cevaptı . Bu bir mesafede bulunuyor Gilles , bir dost bir kullanıcı Ask Ubuntu :

Pano, X sunucusu tarafından sağlanır . Sunucunun başsız olup olmadığı önemli değil, önemli olan yerel grafik oturumunuzun uzak makinede çalışan programlar tarafından kullanılabilir olmasıdır. X'in ağ şeffaf tasarımı sayesinde bu mümkündür.

Uzak sunucuya, Linux çalıştıran bir makineden SSH ile bağlandığınızı varsayıyorum. Hem istemci yapılandırmasında hem de sunucu yapılandırmasında X11 iletmenin etkinleştirildiğinden emin olun. İstemci yapılandırmasında, çizgi olması gerekir ForwardX11 yesyılında ~/.ssh/configvarsayılan olarak üzerinde olması, ya da seçenek geçmesi -Xiçin sshsadece o oturum için komuta. Sunucu yapılandırmasında, çizgi olması gerekir X11Forwarding yeshalinde /etc/ssh/sshd_config(ki Ubuntu varsayılan olarak bulunur).

X11 yönlendirmesi etkin olup olmadığını kontrol etmek için, değeri bakmak DISPLAYortam değişkeni: echo $DISPLAY. localhost:10(Uzak makinede çalışan uygulamalara aynı makinede çalışan bir ekrana bağlanmaları söylenir, ancak bu ekran bağlantısı aslında SSH tarafından istemci tarafındaki ekranınıza iletilir) gibi bir değer görmelisiniz . DISPLAYAyarlanmamışsa, manuel olarak ayarlamanın bir faydası olmadığını unutmayın : yönlendirme yerinde ise ortam değişkeni her zaman doğru ayarlanır. SSH bağlantı sorunlarını teşhis etmeniz gerekirse , neler olup bittiğine dair ayrıntılı bir iz sürme seçeneğini -vvvgeçin ssh.

Başka yollarla bağlanıyorsanız, X11 yönlendirmesini gerçekleştirebilir veya başaramayabilirsiniz. İstemciniz Windows çalıştırıyorsa, PuTTY X11 yönlendirmeyi destekler; Windows makinesinde Xming gibi bir X sunucusu çalıştırmanız gerekir .

By Gilles Ask Ubuntu gelen



10

Bağladığınız belgeleri okudunuz. Bu tamamen aptalca! xclipsadece bir pano. Anahtarı kopyalayıp yapıştırmanın başka yollarını bulacaksınız ... (eminim)


Grafiksel bir X oturumunun içinden çalışmıyorsanız, $DISPLAYortam var değişkenini komuta iletmeniz gerekir. Şu şekilde çalıştırın:

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

Elbette :0kullandığınız ekrana bağlıdır. Tipik bir masaüstü makineniz varsa, muhtemelen:0


8
Anlıyorum Error: Can't open display: :0. Bu arada, Git Bash üzerinden bir VPS'ye erişiyorum. VPS ubuntu, yerel makine windows7
cqcn1991

Ben öyle düşünüyorum. Ama ubuntu'ya aşina değilim. Biraz tavsiye verebilir misin?
cqcn1991

Lol, hiç para almıyorum. Cat intead kullanıyorum, ancak manuel olarak ayarlamam gerekiyor
cqcn1991

1
@ Cqcn1991 ile aynı sorunu yaşıyorum
Nam G VU

1
Kullanmak DISPLAY=:0 xclipayrıca panoyu bir işten temizlemek için de çalışır. Benim durumumda, atkopyaladıktan iki dakika sonra panoyu temizlemek için kullanıyorum .
majgis

9

Bunu deneyin ve bir cazibe gibi çalışacaktır. Aynı hatayı alıyordum ama bu yaklaşım benim için hile yaptı:

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

8

Aşağıdakiler de benim için çalışıyor:

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

pem dosyası kullanarak da çalışır: ssh -i /path/myapp.pem <user> @ <host> "cat <filepath>" | pbcopy
alemol

4
PBcopy'nin Linux değil, Mac işi olduğunu düşündüm
Alexander Mills

1

kullanıcı kökü tarafından bu komutu ekleyin: ssh user_to_acces @ hostName -X

user_to_acces = user hostName = hostname makinesi

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.