`localhost` に ssh したい場合、 authorized_keys ファイルはどこに置くべきですか?

`localhost` に ssh したい場合、 authorized_keys ファイルはどこに置くべきですか?

公開鍵と秘密鍵を設定しましたが、どこに保存すればよいかわかりません。~/.ssh/ユーザー用にこれらのファイルを両方とも保存する必要がありますか?

答え1

秘密鍵は自宅に保管されます。公開鍵は移動します。

  • 秘密鍵を~/.ssh(ローカル ホスト) に配置します。通常は です~/.ssh/id_rsa
  • 公開鍵を~/.ssh/authorized_keys(リモートホスト)に配置します。

最初のステップは通常、キーを作成するときに自動的に実行されますが、2 番目のステップは次の手順で実行できます。

$ ssh-copy-id ~/.ssh/id_rsa.pub user@remotehost

リモートホストに関する設定が残っている場合、認証に失敗するなど、何らかの問題が発生する可能性があります。「認証失敗が多すぎます」)。この問題を解決するには、ssh-copy-id次のようにしてパスワード認証を強制することができます。

$ ssh-copy-id -o"PubkeyAuthentication no" ~/.ssh/id_rsa.pub user@remotehost

もちろん、キーを正しく配置すれば、パスワードは不要になります。

$ ssh user@remotehost

~/.ssh/configさらに簡単にするために、SSH 構成を追加することもできます。

Host [custom name for the remote machine]
    Hostname [remote hostname or IP]
    User [remote username]
    IdentityFile /home/[your local user]/.ssh/id_rsa

これにより、次のように入力するだけでリモート ホストにログインできるようになります。

$ ssh [custom name for the remote machine]

編集: 両方のマシン (ローカルとリモート) が同じ場合は、次の手順で手順を簡略化できます。

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

これにより、公開キーがファイルに追加されますauthorized_keys。もちろん、ローカル マシンに他のユーザーとしてログインする別の方法は、次のとおりです。

$ su [another user]

これにより、必要のない SSH トランザクションが保存されます。パスワードレスsuの設定は以下を使用して行えますsudo:

$ sudo -iu [another user]

関連情報