`localhost`にSSH経由で接続するには、Authorized_keysファイルはどこにあるべきですか?

`localhost`にSSH経由で接続するには、Authorized_keysファイルはどこにあるべきですか?

公開/秘密鍵設定がありますが、どこに配置するのかわかりません。~/.ssh/私のユーザーのためにこれら2つのファイルを配置する必要がありますか?

答え1

秘密鍵は家に残してください。公開鍵の伝播:

  • 秘密鍵を~/.ssh(localhost)に入れます。一般的です~/.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]

関連情報