web-dev-qa-db-ja.com

bash:/home/user/.ssh/authorized_keys:そのようなファイルやディレクトリはありません

Sshキーを作成します。

$ ssh-keygen -t rsa –P ""

キーを承認済みキーに移動する:

$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

bash: /home/user/.ssh/authorized_keys: No such file or directory
11
sknit
bash: /home/user/.ssh/authorized_keys: No such file or directory

パス/home/user/.ssh/の要素が存在しません。シェル(bash)は、コマンド(cat)を実行する前にリダイレクト(>>)をチェックします。 /home/userが存在し、これを試した場合:

cat $HOME/.ssh/id_rsa.pub >> $HOME/test_this

あなたは今得ます:

cat: /home/user/.ssh/id_rsa.pub: No such file or directory

そのファイルをその場所に置くことはできないので、/home/user/.ssh/がそもそも存在しなかった場合。

いくつかのビットをスキップした可能性があるいくつかの指示に従っています。ディレクトリを作成するには:

mkdir $HOME/.ssh
chmod 700 $HOME/.ssh

ただし、id_rsa.pubはありません。そもそもssh-keygenコマンドを実行した場所です。

13
goldilocks

最初にsshキーを作成するユーザーとしてログインしていることを確認してください(またはコマンドのパスを正しいホームディレクトリに変更する準備をしてください)。

次に、ディレクトリを作成します。

mkdir ~/.ssh

上記のcatコマンドを使用してファイルを作成します。次に、権限を正しく設定することを忘れないでください。

chmod 400 ~/.ssh/authorized_keys

.sshディレクトリにも適切な権限があることを確認することをお勧めします。

6
111---

可能であれば、コマンドラインツールssh-copy-id

$ ssh-copy-id -h
Usage: /usr/bin/ssh-copy-id [-i [identity_file]] [user@]machine

デフォルトのSSH公開鍵をリモートサーバーにコピーするだけの場合は、次のコマンドを実行します。

$ ssh-copy-id user@remoteserver

このツールを使用する実際の完全な例を、このQ&Aのタイトルで示します。 rsyncとssh接続を共有できません

6
slm

これは、ssh-keygenでキーを作成するときにファイル名を指定した場合にも失敗する可能性があります。 my-ssh-file-nameという名前を入力すると、/Users/MyUserNameフォルダではなく.sshへのキーが書き込まれました。ファイル名を空白のままにすると、期待どおり.sshに書き込まれます。