~ / .ssh / id_rsa.pub를 복사 할 수 없습니다.


117

난에 다음과 같은거야 생성 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) 문제가 무엇입니까? 주변을 검색했지만 아무것도 찾지 못했습니다.


무엇합니까 echo $DISPLAY말은?
Fred Foo

아무것도. ssh를 통해 서버에서이 명령을 실행하고 있습니다
Michael Pacheco

답변:


123

DISPLAY=:0 xclip -sel clip < ~/.ssh/id_rsa.pub나를 위해 작동하지 않았지만 ( ubuntu 14.04) 사용할 수 있습니다.

cat ~/.ssh/id_rsa.pub

공개 키를 얻으려면


11
이것은 ssh를 통해 파일 내용을 복사하려는 모든 사람을위한 1 번 대답이어야합니다
dval

23
긴 파일을 복사하려는 경우를 제외하고.
플라 Hautbois

26
@dval, 질문 xclip은 bash에서 SSH 키를 표시하는 것만이 아니라 사용법을 언급하기 때문에 1 번 대답이라는 데 동의하지 않습니다 cat ~/.ssh/id_rsa.pub. 그러나 값이 표시 될 때 복사 할 수 있으므로 문제 해결에 도움이됩니다.
Nik Sumeiko

123
뭐?! xclip이 작동하지 않는 문제를 어떻게 해결할 수 있습니까?
VaTo

26
실제로이 답변은 매우 오해의 소지가 있습니다.
Hasan Can Saral

78

이 질문의 날짜를 기반으로 할 때 원래 포스터는 Linux 용 Windows 하위 시스템을 사용하지 않았을 것 입니다. 그러나 동일한 오류가 발생하면 다음 대안이 작동합니다.

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

이 페이지 덕분에 Windows의 clip.exe ( ". exe"를 입력해야 함)를 bash 쉘에서 실행할 수 있습니다.


8
당신은 또한 파이프를 사용할 수 있습니다 cat ~/.ssh/id_rsa.pub | clip.ese단지 작동
chriz

2
@chriz 나는 당신이 "ese"가 아니라 "exe"를 의미한다고 생각합니까?
Marc Stober

3
오, 죄송합니다 cat ~/.ssh/id_rsa.pub | clip.exe. 오타 일뿐 입니다. 지적 해 주셔서 감사합니다.
chriz

1
@Moytaba CONTROL 시프트 V.
JoanComasFdz

1
그리고 모든 플랫폼에서 단일 명령을 선호하는 사람들을 위해 다음을 ~/.bashrc또는 ~/.bash_profile:에 추가하십시오 alias pbcopy="clip.exe". 파이프 |작동 을 지적 해 준 @chriz에게 감사드립니다 .
Dio Phung

37

이것은 여기에 게시하지 않기 에는 너무 좋은 답변 이었습니다 . 그것은에서의 에서 동료 사용자 askubuntu :

클립 보드는 X 서버에서 제공 합니다 . 서버가 헤드리스인지 여부는 중요하지 않습니다. 중요한 것은 원격 컴퓨터에서 실행되는 프로그램에서 로컬 그래픽 세션을 사용할 수 있다는 것입니다. X의 네트워크 투명 설계 덕분에 가능합니다.

Linux를 실행하는 컴퓨터에서 SSH를 사용하여 원격 서버에 연결한다고 가정합니다. 클라이언트 구성과 서버 구성 모두에서 X11 전달이 활성화되어 있는지 확인하십시오. 클라이언트 구성에서 기본적으로 해당 라인 ForwardX11 yes을 사용 ~/.ssh/config하거나 해당 세션에 대한 명령에 옵션 -X을 전달해야합니다 ssh. 서버 구성에서는 라인이 필요 X11Forwarding yes/etc/ssh/sshd_config(우분투에 기본적으로 존재).

X11 전달이 활성화되어 있는지 확인하려면 DISPLAY환경 변수 값을 확인하십시오 echo $DISPLAY. 다음과 같은 값이 표시되어야 localhost:10합니다 (원격 시스템에서 실행중인 응용 프로그램은 동일한 시스템에서 실행중인 디스플레이에 연결하라는 메시지가 표시되지만 실제로 해당 디스플레이 연결은 SSH에 의해 클라이언트 측 디스플레이로 전달됩니다). DISPLAY이 설정되지 않은 경우 수동으로 설정하는 것은 소용이 없습니다. 전달이 제자리에 있으면 환경 변수가 항상 올바르게 설정됩니다. SSH 연결 문제를 진단해야하는 경우 발생하는 상황에 대한 자세한 추적을 얻으려면 옵션 -vvvssh에 전달하십시오 .

다른 수단을 통해 연결하는 경우 X11 전달을 수행 할 수도 있고 수행하지 못할 수도 있습니다. 클라이언트가 Windows를 실행중인 경우 PuTTY 는 X11 전달을 지원합니다. Xming 과 같은 Windows 시스템에서 X 서버를 실행해야합니다 .

으로 askubuntu에서



10

링크 한 문서를 읽었습니다. 그것은 완전히 어리석은 일입니다! xclip클립 보드 일뿐입니다. 키를 복사하여 붙여 넣는 다른 방법을 찾을 수 있습니다 ... (확실합니다)


그래픽 X 세션 내부에서 작업하지 않는 경우 $DISPLAY환경 var를 명령 에 전달해야합니다 . 다음과 같이 실행하십시오.

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

물론 :0사용중인 디스플레이에 따라 다릅니다. 일반적인 데스크톱 컴퓨터를 사용하는 경우:0


7
나는 Error: Can't open display: :0. 그건 그렇고, Git Bash를 통해 VPS에 액세스하고 있습니다. VPS는 우분투, 로컬 시스템은 windows7
cqcn1991 2013 년

나도 그렇게 생각해. 하지만 우분투에 익숙하지 않습니다. 조언 좀 해주시 겠어요?
cqcn1991 2013 년

롤, 나는 전혀 지불되지 않았습니다. 나는 cat intead를 사용하지만 수동으로
fomrat

1
나는 @ cqcn1991과 같은 문제가있다
남 G VU

1
을 사용 DISPLAY=:0 xclip하면 작업에서 클립 보드를 지울 수도 있습니다. 제 경우에는 at복사 후 2 분 후에 클립 보드를 지우는 데 사용 하고 있습니다.
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이 아닌 리눅스 맥 것은,라고 생각
알렉산더 밀스

1

사용자 루트로이 명령을 추가하십시오. ssh user_to_acces @ hostName -X

user_to_acces = 사용자 hostName = 호스트 이름 시스템

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.