如果我想 ssh 到 `localhost`,我的authorized_keys 文件应该在哪里?

如果我想 ssh 到 `localhost`,我的authorized_keys 文件应该在哪里?

我有我的公钥/私钥设置,但我不知道它应该放在哪里。应该~/.ssh/为我的用户放置这两个文件吗?

答案1

私钥留在家里。公钥传播:

  • 将您的私钥放在~/.ssh(本地主机)中。它通常是~/.ssh/id_rsa
  • 将您的公钥放入~/.ssh/authorized_keys(远程主机)。

虽然第一步通常在创建密钥时自动完成,但第二步可以通过以下方式完成:

$ 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 配置以~/.ssh/config使其更加简单:

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]

相关内容