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


11

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

同じ質問ですが、なぜ自分のホストにキーを追加する必要があるのですか?
Braiam 2014年

@Braiam自分のホームディレクトリがネットワークドライブにあるときにこれを行いました。これにより、このドライブをマウントした任意のマシンにsshすることができました。だから私は自分のホストにぶつかっていませんでした。
FDinoff 2014年

回答:


13
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最初にコマンドを実行した場所です。


6

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

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

mkdir ~/.ssh

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

chmod 400 ~/.ssh/authorized_keys

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


1
あなたの最後のコメントが暗示するように、はい私はあなたがする必要があると思いますchmod 700 ~/.ssh
KCD

6

可能であれば、コマンドラインツールを使用することを常に勧めています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接続を共有できません


0

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


または、もちろん、あなたは直接の.sshフォルダにカスタムキーを記述するために指定することができます-f ~/.ssh/custom-key-name
議会
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.