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

公開鍵/秘密鍵を設定していますが、どこに配置すればよいかわかりません。これらのファイルを両方ともユーザーの場合

回答

秘密鍵は家に残ります。公開鍵は移動します:

  • 秘密鍵を~/.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 

もちろん、oキーが正しく配置されているため、パスワードは不要です。

$ ssh user@remotehost 

さらに簡単にする:

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] 

コメント

  • ssh localhost
  • @MrDukこの場合、ローカルエンドとリモートエンドの両方が同じマシンです。したがって、ローカルの~/.ssh/authorized_keys内に公開鍵を持っている必要があります。これには、cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keysを使用できます。回答を編集しました。
  • 回答以降に状況が変わった可能性がありますが、最初のコマンドに-iを追加して、コマンド全体が$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@remotehost

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です