ssh-copy-id は使用できません。 - mktemp:テンプレートからファイルを生成できません。

ssh-copy-id は使用できません。 - mktemp:テンプレートからファイルを生成できません。

同じボックスが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台のコンピュータで動作するのかを説明するのに役立ちますか?

答え1

私はssh-copy-idがスクリプトであることを知りませんでした。見ました。

sudo -sroot以外のユーザーとしてログインした後、Ubuntuをrootとして使用しているので、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フォルダの所有者がrootではなく現在のユーザーであることを確認してください。

答え4

明らかに mktemp で ~/.ssh を見ると、ssh-copy-id は /root/.ssh を意味すると思うので、/root の下に .ssh ディレクトリを作成すると問題は解決します。

関連情報