ไม่สามารถคัดลอก ~ / .ssh / id_rsa.pub


119

ฉันติดตามในการสร้างคีย์ SSHมันกล่าว

sudo apt-get install xclip

ดาวน์โหลดและติดตั้ง xclip หากคุณไม่มีapt-getคุณอาจต้องใช้ตัวติดตั้งอื่น (เช่นyum)

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

คัดลอกเนื้อหาของไฟล์ id_rsa.pub ไปยังคลิปบอร์ดของคุณ

แต่หลังจากเรียกใช้xclip -sel clip < ~/.ssh/id_rsa.pubฉันได้รับError: Can't open display: (null) ปัญหาคืออะไร? ฉัน googled ไปรอบ ๆ แต่ไม่พบอะไรเกี่ยวกับมัน


อะไรecho $DISPLAYเอ่ย?
Fred Foo

ไม่มีอะไร ฉันใช้คำสั่งนี้บนเซิร์ฟเวอร์ผ่าน ssh
Michael Pacheco

คำตอบ:


125

DISPLAY=:0 xclip -sel clip < ~/.ssh/id_rsa.pubไม่ได้ผลสำหรับฉัน ( ubuntu 14.04) แต่คุณสามารถใช้:

cat ~/.ssh/id_rsa.pub

เพื่อรับคีย์สาธารณะของคุณ


11
นี่ควรเป็นคำตอบอันดับ 1 สำหรับทุกคนที่พยายามคัดลอกเนื้อหาไฟล์ผ่าน ssh
dval

23
ยกเว้นเมื่อคุณพยายามคัดลอกไฟล์ขนาดยาว
Flavian Hautbois

26
@dval ผมไม่เห็นมันจะเป็นหมายเลข 1 คำตอบเพราะคำถามที่กล่าวถึงxclipการใช้งานที่ไม่ได้เป็นเพียงการแสดง SSH cat ~/.ssh/id_rsa.pubสำคัญในทุบตีด้วย อย่างไรก็ตามวิธีนี้ช่วยแก้ปัญหาได้เนื่องจากคุณสามารถคัดลอกค่าเมื่อแสดงขึ้น
Nik Sumeiko

124
อะไร?! วิธีนี้สามารถแก้ปัญหา xclip ไม่ทำงานได้อย่างไร
VaTo

26
อันที่จริงคำตอบนี้ทำให้เข้าใจผิดอย่างยิ่ง
Hasan Can Saral

78

ขึ้นอยู่กับวันของคำถามนี้โปสเตอร์เดิมจะไม่ได้รับการใช้งาน Windows ระบบย่อยสำหรับลินุกซ์ แต่ถ้าคุณเป็นและได้รับข้อผิดพลาดเดียวกันทางเลือกต่อไปนี้จะใช้ได้:

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

ขอบคุณหน้านี้ที่ชี้ให้เห็นว่า clip.exe ของ Windows (และคุณต้องพิมพ์ ".exe") สามารถเรียกใช้จาก bash shell


8
คุณยังสามารถใช้ท่อcat ~/.ssh/id_rsa.pub | clip.eseได้
chriz

2
@chriz ฉันคิดว่าคุณหมายถึง "exe" ไม่ใช่ "ese"?
Marc Stober

3
Oh yeah cat ~/.ssh/id_rsa.pub | clip.exeขอโทษที่เป็นเพียงการพิมพ์ผิดก็ ขอบคุณที่ชี้ให้เห็น
chriz

1
@Moytaba CONTROL SHIFT V.
JoanComasFdz

1
และสำหรับผู้ที่ต้องการคำสั่งเดียวบนแพลตฟอร์มทั้งหมด: เพิ่มนี้ที่คุณ~/.bashrcหรือ:~/.bash_profile alias pbcopy="clip.exe"และขอบคุณ @chriz ที่ชี้ให้เห็นว่าท่อ|ทำงานได้ดี
Dio Phung

37

นี่เป็นคำตอบที่ดีเกินไปที่จะไม่โพสต์ไว้ที่นี่ มาจากGillesผู้ใช้คนอื่นจากaskubuntu :

คลิปบอร์ดที่มีให้โดยเซิร์ฟเวอร์เอ็กซ์ ไม่สำคัญว่าเซิร์ฟเวอร์จะไม่มีหัวหรือไม่สิ่งที่สำคัญคือเซสชันกราฟิกในเครื่องของคุณพร้อมใช้งานสำหรับโปรแกรมที่ทำงานบนเครื่องระยะไกล ด้วยการออกแบบที่โปร่งใสเครือข่ายของ X จึงเป็นไปได้

ฉันคิดว่าคุณกำลังเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลด้วย SSH จากเครื่องที่ใช้ Linux ตรวจสอบให้แน่ใจว่าเปิดใช้งานการส่งต่อ X11 ทั้งในคอนฟิกูเรชันไคลเอ็นต์และในคอนฟิกูเรชันเซิร์ฟเวอร์ ในการกำหนดค่าของลูกค้าที่คุณจำเป็นต้องมีสายForwardX11 yesใน ~/.ssh/configที่จะมีมันตามค่าเริ่มต้นหรือผ่านตัวเลือก-Xให้กับsshคำสั่งเพียงสำหรับเซสชั่นที่ ในการกำหนดค่าเซิร์ฟเวอร์คุณต้องมีสายX11Forwarding yesเข้า /etc/ssh/sshd_config(มีอยู่ตามค่าเริ่มต้นบน Ubuntu)

เพื่อตรวจสอบว่าส่ง X11 ถูกเปิดใช้งานดูที่ค่าของ ตัวแปรสภาพแวดล้อม:DISPLAY echo $DISPLAYคุณควรเห็นค่าเช่นlocalhost:10(แอปพลิเคชันที่ทำงานบนเครื่องระยะไกลได้รับคำสั่งให้เชื่อมต่อกับจอแสดงผลที่ทำงานบนเครื่องเดียวกัน แต่การเชื่อมต่อการแสดงผลนั้นส่งต่อโดย SSH ไปยังจอแสดงผลฝั่งไคลเอ็นต์ของคุณ) โปรดทราบว่าหากDISPLAYไม่ได้ตั้งค่าจะไม่ใช้การตั้งค่าด้วยตนเอง: ตัวแปรสภาพแวดล้อมจะถูกตั้งค่าอย่างถูกต้องเสมอหากมีการส่งต่อ หากคุณต้องการที่จะวินิจฉัยปัญหาการเชื่อมต่อ SSH ผ่านตัวเลือกใน-vvvการsshที่จะได้รับการติดตามรายละเอียดของสิ่งที่เกิดขึ้น

หากคุณกำลังเชื่อมต่อด้วยวิธีการอื่นคุณอาจจะส่งต่อ X11 หรือไม่ก็ได้ หากไคลเอนต์ของคุณใช้ Windows PuTTY รองรับการส่งต่อ X11 คุณจะต้องเรียกใช้เซิร์ฟเวอร์ X บนเครื่อง Windows เช่นXming

โดยGillesจาก askubuntu



10

อ่านเอกสารที่คุณเชื่อมโยง มันโง่มาก! xclipเป็นเพียงคลิปบอร์ด คุณจะพบวิธีอื่น ๆ ในการคัดลอกวางคีย์ ... (ฉันแน่ใจ)


หากคุณไม่ได้ทำงานจากภายในเซสชัน X แบบกราฟิกคุณต้องส่ง$DISPLAYสภาพแวดล้อม var ไปยังคำสั่ง เรียกใช้ดังนี้:

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

แน่นอน:0ขึ้นอยู่กับจอแสดงผลที่คุณใช้ หากคุณมีเครื่องเดสก์ท็อปทั่วไปก็น่าจะเป็นเช่นนั้น:0


8
ฉันเข้าใจError: Can't open display: :0แล้ว ฉันกำลังเข้าถึง VPS ผ่าน Git Bash VPS คืออูบุนตูเครื่องท้องถิ่นคือ windows7
cqcn1991

ฉันคิดอย่างนั้น แต่ฉันไม่คุ้นเคยกับ ubuntu ช่วยให้คำแนะนำได้ไหม
cqcn1991

ฮ่า ๆ ฉันไม่ได้จ่ายเลย ฉันใช้ cat intead แต่ต้อง fomrat ด้วยตนเอง
cqcn1991

1
ฉันมีปัญหาเดียวกันกับ @ cqcn1991
Nam G VU

1
การใช้DISPLAY=:0 xclipงานยังใช้เพื่อล้างคลิปบอร์ดออกจากงาน ในกรณีของฉันฉันใช้atเพื่อล้างคลิปบอร์ดสองนาทีหลังจากคัดลอก
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 เป็นของ mac ไม่ใช่ linux
Alexander Mills

1

เพิ่มโดยผู้ใช้รูทคำสั่งนี้: ssh user_to_acces @ hostName -X

user_to_acces = user hostName = เครื่องชื่อโฮสต์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.