Je suis dans Génération de clés SSH , il est écrit
Sudo apt-get install xclip
# Télécharge et installe xclip. Si vous n'avez pas
apt-get
, vous devrez peut-être utiliser un autre programme d'installation (commeyum
)xclip -sel clip <~/.ssh/id_rsa.pub
# Copie le contenu du fichier id_rsa.pub dans votre presse-papiers
Mais après avoir lancéxclip -sel clip < ~/.ssh/id_rsa.pub
, je reçois Error: Can't open display: (null)
Quel est le problème? J'ai cherché sur Google mais je n'ai rien trouvé
DISPLAY=:0 xclip -sel clip < ~/.ssh/id_rsa.pub
n'a pas fonctionné pour moi (ubuntu 14.04
), mais vous pouvez utiliser:
cat ~/.ssh/id_rsa.pub
pour obtenir votre clé publique
Sur la base de la date de cette question, l’affiche originale n’aurait pas utilisé Sous-système Windows pour Linux . Mais si vous êtes et que vous obtenez la même erreur, l'alternative suivante fonctionne:
clip.exe < ~/.ssh/id_rsa.pub
Merci à cette page pour avoir souligné le clip.exe de Windows (et vous devez taper le ".exe") peut être exécuté à partir du shell bash.
C'était trop bonne réponse de ne pas l'afficher ici. Cela provient d'un co-utilisateur dans askubuntu:
Le presse-papiers est fourni par le X Serveur . Cela n'a pas d'importance que le serveur soit sans tête ou non, l’important est que votre local La session graphique est disponible pour les programmes exécutés sur la télécommande machine. Grâce à la conception transparente du réseau de X, cela est possible.
Je suppose que vous vous connectez au serveur distant avec SSH à partir d'un fichier machine sous Linux. Assurez-vous que le transfert X11 est activé à la fois dans la configuration du client et dans la configuration du serveur. Dans le configuration cliente, vous devez avoir la ligne
ForwardX11 yes
en~/.ssh/config
pour l’activer par défaut, ou passez l’option-X
à la commandessh
juste pour cette session. Dans la configuration du serveur, vous devez avoir la ligneX11Forwarding yes
dans/etc/ssh/sshd_config
(il est présent par défaut sur Ubuntu).Pour vérifier si le transfert X11 est activé, regardez la valeur du fichier
DISPLAY
variable d'environnement:echo $DISPLAY
. Vous devriez voir un Une valeur telle quelocalhost:10
(les applications s'exécutant sur la machine distante ont pour instruction de se connecter à un écran fonctionnant sur le même ordinateur, mais cette connexion est en fait transmise par SSH à votre écran client ). Notez que siDISPLAY
n'est pas défini, il ne sert à rien de le régler manuellement: la variable d'environnement est toujours définie correctement si. le transfert est en place. Si vous avez besoin de diagnostiquer des problèmes de connexion SSH, Passez l'option-vvv
àssh
pour obtenir une trace détaillée de ce que événement.Si vous vous connectez par un autre moyen, vous pouvez être ou ne pas être capable de réaliser la transmission X11. Si votre client exécute Windows, PuTTY prend en charge le transfert X11; vous devrez exécuter un serveur X sur Windows machine telle que Xming .
-Gilles de askubuntu
Si vous essayez d'utiliser xclip sur l'hôte distant, ajoutez simplement -X à votre commande ssh
ssh user@Host -X
Des informations plus détaillées peuvent être trouvées ici: https://askubuntu.com/a/305681
Essayez ceci et cela fonctionnera comme un charme. J'avais la même erreur mais cette approche a fait l'affaire pour moi:
ssh USER@REMOTE "cat file"|xclip -i
J'ai lu la documentation que vous avez liée. C'est totalement idiot! xclip
est juste un presse-papier. Vous trouverez d'autres moyens de copier/coller la clé ... (j'en suis sûr)
Si vous ne travaillez pas depuis une session graphique X, vous devez transmettre la variable $DISPLAY
à la commande. Exécutez-le comme ça:
DISPLAY=:0 xclip -sel clip < ~/.ssh/id_rsa.pub
Bien entendu, :0
dépend de l'écran que vous utilisez. Si vous avez un ordinateur de bureau typique, il est probable que ce soit :0
Ce qui suit fonctionne également pour moi:
ssh <user>@<Host> "cat <filepath>"|pbcopy
ajoutez par l'utilisateur root cette commande: ssh user_to_acces @ hostName -X
user_to_acces = user hostName = nom_hôte ordinateur