키를 생성 한 위치와 키를로드하려는 위치가 일치하지 않는 것 같습니다.
command를 실행할 때 sudo pbcopy <~/.ssh/id_rsa.pub
발생하는 일은 ( ) pbcopy
로 명령을 실행하는 것이지만 현재 사용자가 실행중인 현재 프롬프트에 의해 파일이로드 되므로 현재 사용자의 홈 디렉토리로 해석됩니다.root
sudo
bash
~
로 키를 생성 한 경우 ssh-keygen
키를 ~
현재 사용자 의 키에 넣습니다 . 현재 사용자이기 때문에, 잘, 당신은 모든 것이 잘 최대 일치합니다.
로 키를 생성 한 경우 이는 사용자 로 실행 sudo ssh-keygen
되었음을 의미 하므로 실제로 키는 홈 디렉토리 아래에 있습니다 ( 또는 기본적으로).ssh-keygen
root
root
~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
의 키를 찾습니다 ~/.ssh
의 root
.