공개 ssh 키를 복사 할 수없는 것 같습니다


1

방금 ssh 키를 생성 한 후 id_rsa.pub를 복사하려고했지만 디렉토리가 존재하지 않는다는 오류가 발생합니다. 누군가 나를 도울 수 있습니까?

user$ sudo pbcopy <~/.ssh/id_rsa.pub
-bash: /Users/user/.ssh/id_rsa.pub: No such file or directory

해당 디렉토리에서 ls -la 및 pwd의 출력은 무엇입니까?
Elias

키를 생성하기 위해 어떤 명령을 사용 했습니까? 당신이 사용하는 경우 sudo ssh-keygen가에서 종료 한 것이 root아닌 사용자, 홈 디렉토리. 사용자를위한 키를 원한다면 ssh-keygen자체적으로 사용하십시오 .
Bob

왜 sudo를 사용하고 있습니까?
djsmiley2k

@bob 고마워요. 나는 sudo를 사용했다.
melkawakibi

@bob 그래서 루트 오른쪽에 ssh 키가 있습니다. ssh 키를 삭제하려면 어떻게합니까?
melkawakibi

답변:


1

키를 생성 한 위치와 키를로드하려는 위치가 일치하지 않는 것 같습니다.

command를 실행할 때 sudo pbcopy <~/.ssh/id_rsa.pub발생하는 일은 ( ) pbcopy로 명령을 실행하는 것이지만 현재 사용자가 실행중인 현재 프롬프트에 의해 파일이로드 되므로 현재 사용자의 홈 디렉토리로 해석됩니다.rootsudobash~

로 키를 생성 한 경우 ssh-keygen키를 ~현재 사용자 의 키에 넣습니다 . 현재 사용자이기 때문에, 잘, 당신은 모든 것이 잘 최대 일치합니다.

로 키를 생성 한 경우 이는 사용자 실행 sudo ssh-keygen되었음을 의미 하므로 실제로 키는 홈 디렉토리 아래에 있습니다 ( 또는 기본적으로).ssh-keygenrootroot~root/.ssh/id_rsa.pub/root/.ssh/id_rsa.pub

여기에는 두 가지 가능한 해결책이 있습니다. 당신이 선택하는 것은 당신이하고 싶은 것에 달려 있습니다 :

  • 당신은 당신의 자신의 사용자에 대한 키를 생성 할 수 ssh-keygen 없는sudo . 이렇게하면 원래 명령이 작동 할 수 있습니다.

  • 또는 키를로 유지할 수 root있지만 사용하려면 루트 에서 키 를로드해야 합니다. 쉘 리디렉션 연산자로 이렇게하려면, 당신은 전체 쉘 실행해야합니다 root, 예를sudo sh -c 'pbcopy <~/.ssh/id_rsa.pub'

어떤 솔루션이 더 적합한 지 요구 사항과 향후 수행 할 작업에 따라 다릅니다. 실행 한 모든 명령 sudo은 아래에 키가 표시되고 root실행하지 않은 명령 sudo은 현재 사용자 아래에 키가 표시됩니다. 예를 들어, 실행하는 경우 ssh는의 키를 찾습니다 ~/.ssh하면서, 현재 사용자의 sudo ssh의 키를 찾습니다 ~/.sshroot.

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