동일한 상자가 4개 있습니다. 첫 번째 상자에 로그인하여 작업을 수행한 sudo -s
다음 ssh-keygen -t rsa
키를 생성하여 상자에 넣었습니다./root/.ssh/
그런 다음 비밀번호를 입력했는데 ssh-copy-id -i /root/.ssh/id_rsa.pub user@machine
비밀번호를 묻는 메시지가 표시되어 제대로 작동했습니다.
다음 상자로 이동하면 다음 메시지가 나타납니다.
mktemp: failed to create file via template ‘/home/user/.ssh/ssh-copy-id_id.XXXXXXXXXX’: No such file or directory
mktemp failed
혼란스러워 보이면서도 혼란스럽기도 했습니다.
무슨 일이 일어나고 있는지/왜 이것이 한 컴퓨터에서 작동하는지 설명하는 데 도움을 줄 수 있습니까?
답변1
나는 ssh-copy-id가 스크립트라는 것을 몰랐습니다. 나는 그것을 보았습니다.
sudo -s
루트가 아닌 사용자로 로그인한 후 Ubuntu를 루트로 사용하고 있으므로 home은 여전히/home/user
따라서 mktemp는 하위 폴더를 생성하지 않고 하드 코딩으로 임시 파일을 생성합니다. 방금 ~/.ssh/tempfile
/home/user에 .ssh를 생성했는데 제대로 작동했습니다.
이전에 첫 번째 컴퓨터에서 SSH를 사용한 적이 있으므로 이 폴더가 이미 존재합니다.
답변2
WSL 2 Ubuntu 20.04 적절한 업데이트 업그레이드 후:
ssh-copy-id user@hostname
mktemp failed to create file via template '~/.ssh/ssh-copy-id.XXXXXXXXXX': No such file or directory
ssh-copy-id: ERORR mktemp failed
다음을 수행하여 위의 문제를 해결할 수 있었습니다.
sudo vi /usr/bin/ssh-copy-id
변화:
#!/bin/sh
도착하다:
#!/bin/bash
ssh-copy-id
이제 예상대로 작동합니다.
답변3
.ssh 폴더의 소유자가 루트가 아닌 현재 사용자인지 확인하십시오.
답변4
분명히 mktemp에서 ~/.ssh를 볼 때 ssh-copy-id는 /root/.ssh를 의미한다고 생각하므로 /root 아래에 .ssh 디렉토리를 생성하면 문제가 해결됩니다.