Impossibile copiare ~ / .ssh / id_rsa.pub


117

Sto seguendo in Generating SSH Keys , dice

sudo apt-get install xclip

Scarica e installa xclip. Se non lo hai apt-get, potresti dover utilizzare un altro programma di installazione (come yum)

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

Copia il contenuto del file id_rsa.pub negli appunti

Ma dopo che corro xclip -sel clip < ~/.ssh/id_rsa.pubottengo Error: Can't open display: (null) Qual è il problema? Ho cercato su Google ma non ho trovato nulla al riguardo


Cosa echo $DISPLAYdice?
Fred Foo

Niente. Sto eseguendo questo comando su un server tramite ssh
Michael Pacheco

Risposte:


123

DISPLAY=:0 xclip -sel clip < ~/.ssh/id_rsa.pubnon ha funzionato per me ( ubuntu 14.04), ma puoi usare:

cat ~/.ssh/id_rsa.pub

per ottenere la tua chiave pubblica


11
Questa dovrebbe essere la risposta numero 1 per chiunque stia tentando di copiare il contenuto del file tramite ssh
dval

23
Tranne quando stai cercando di copiare un file lungo.
Flavian Hautbois

26
@dval, non sono d'accordo che sarà la risposta numero 1, perché la domanda menziona l' xcliputilizzo non solo la visualizzazione della chiave SSH in una bash con cat ~/.ssh/id_rsa.pub. Tuttavia, questo aiuta a risolvere il problema, perché puoi copiare il valore quando viene visualizzato.
Nik Sumeiko

123
che cosa?! come questo può risolvere il problema di xclip non funzionante?
VaTo

26
In realtà, questa risposta è estremamente fuorviante.
Hasan Can Saral

78

In base alla data di questa domanda, il poster originale non avrebbe utilizzato Windows Subsystem per Linux . Ma se lo sei e ottieni lo stesso errore, la seguente alternativa funziona:

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

Grazie a questa pagina per aver evidenziato clip.exe di Windows (e devi digitare ".exe") può essere eseguito dalla shell bash.


8
puoi anche usare i tubi cat ~/.ssh/id_rsa.pub | clip.esesemplicemente funziona
Chriz

2
@chriz Penso che tu intenda "exe" non "ese"?
Marc Stober

3
oh sì, mi dispiace che sia stato solo un errore di battitura, è cat ~/.ssh/id_rsa.pub | clip.exe. Grazie per la segnalazione.
Chriz

1
@Moytaba CONTROL SHIFT V.
JoanComasFdz

1
e per chi ha preferito un singolo comando su tutte le piattaforme: aggiungere questo al vostro ~/.bashrco ~/.bash_profile: alias pbcopy="clip.exe". e grazie a @chriz per aver sottolineato che le pipe |funzionano bene.
Dio Phung

37

Questa era una risposta troppo buona per non pubblicarla qui. È di un Gilles , un altro utente di askubuntu :

Gli appunti è fornito dal server X . Non importa se il server è headless o meno, ciò che conta è che la tua sessione grafica locale sia disponibile per i programmi in esecuzione sulla macchina remota. Grazie al design trasparente alla rete di X, questo è possibile.

Presumo che ti stai connettendo al server remoto con SSH da una macchina che esegue Linux. Assicurati che l'inoltro X11 sia abilitato sia nella configurazione del client che nella configurazione del server. Nella configurazione del client, è necessario avere la linea ForwardX11 yesdi ~/.ssh/configaverlo per default, o passare l'opzione -Xper il sshcomando solo per quella sessione. Nella configurazione del server, è necessario avere la linea X11Forwarding yesa /etc/ssh/sshd_config(è presente di default su Ubuntu).

Per verificare se l'inoltro X11 è abilitata, guardare il valore della DISPLAYvariabile d'ambiente: echo $DISPLAY. Dovresti vedere un valore come localhost:10(alle applicazioni in esecuzione sulla macchina remota viene detto di connettersi a un display in esecuzione sulla stessa macchina, ma quella connessione del display viene in realtà inoltrata da SSH al display lato client). Nota che se DISPLAYnon è impostato, è inutile impostarlo manualmente: la variabile d'ambiente è sempre impostata correttamente se l'inoltro è a posto. Se è necessario diagnosticare problemi di connessione SSH, passare l'opzione -vvva sshper ottenere una traccia dettagliata di ciò che sta accadendo.

Se ti connetti tramite altri mezzi, potresti o meno essere in grado di ottenere l'inoltro X11. Se il tuo client esegue Windows, PuTTY supporta l'inoltro X11; dovrai eseguire un server X sulla macchina Windows come Xming .

Di Gilles di askubuntu



10

Ho letto la documentazione che hai collegato. È totalmente stupido! xclipè solo un appunti. Troverai altri modi per copiare e incollare la chiave ... (ne sono sicuro)


Se non stai lavorando dall'interno di una sessione X grafica, devi passare l' $DISPLAYambiente var al comando. Eseguilo in questo modo:

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

Ovviamente :0dipende dal display che stai utilizzando. Se hai una tipica macchina desktop, è probabile che lo sia:0


7
Capisco Error: Can't open display: :0. A proposito, accedo a un VPS tramite Git Bash. VPS è ubuntu, la macchina locale è
windows7

Credo di si. Ma non ho familiarità con Ubuntu. Puoi darmi qualche consiglio?
cqcn1991

Lol, non sono affatto pagato. Uso cat intead, ma devo formarlo manualmente
cqcn1991

1
Ho lo stesso problema con @ cqcn1991
Nam G VU

1
L'utilizzo DISPLAY=:0 xclipfunziona anche per cancellare gli appunti da un lavoro. Nel mio caso, sto usando atper cancellare gli appunti due minuti dopo la copia.
Majgis

9

Prova questo e funzionerà come un incantesimo. Stavo riscontrando lo stesso errore, ma questo approccio ha funzionato per me:

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

8

Anche quanto segue funziona per me:

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

funziona anche usando un file pem: ssh -i /path/myapp.pem <user> @ <host> "cat <filepath>" | pbcopy
alemol

4
Pensavo che pbcopy fosse una cosa per Mac, non per Linux
Alexander Mills

1

aggiungi da utente root questo comando: ssh user_to_acces @ hostName -X

user_to_acces = user hostName = hostname machine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.