通过 ssh-copy-id 为其他用户安装公钥

rea*_*ess 37 linux ssh ubuntu ubuntu-12.04

ssh-copy-id可用于将您的公钥安装在远程机器的authorized_keys. 如果您有sudo能力,是否可以使用相同的命令安装其他用户的公钥?

更新:本地和远程都使用 Ubuntu 12.04。

更新2:描述创建新用户帐户和添加公钥的过程

  1. (远程)创建一个新的用户帐户,并将其设置为仅用户公钥访问。
  2. (本地)为新用户帐户(ssh-keygen)生成一个公钥。
  3. 通常我做的是.ssh/authorized_keys在远程服务器上创建目录和文件,然后将本地生成的公钥复制并粘贴到新用户的帐户中。我正在寻找的是,如果我可以使用ssh-copy-id将这个新创建的用户的公钥直接安装到 ssh 目录中。只是为了保存更多命令。

小智 20

不是同一个命令,但如果您在远程主机上有 sudo,则可以使用 ssh 远程执行所需的步骤。我使用以下命令将我的 ssh 密钥推送到我的 raspberry 的 root 用户:

cat ~/.ssh/id_rsa.pub | \
  ssh pi@192.168.1.25 \
  "sudo mkdir /root/.ssh; sudo tee -a /root/.ssh/authorized_keys"
Run Code Online (Sandbox Code Playgroud)
  • 猫我的社区钥匙
  • 将其通过管道传输到 ssh
  • ssh 以 ssh 用户身份连接到我的树莓派
  • 在远程使用 sudo 创建 /root/.ssh
  • 然后使用带有“tee -a”的 sudo 将 stdin(保存第一只猫的密钥)附加到 /root/.ssh/authorized_keys

只需将这些东西作为脚本放在一起,也许在远程端添加一些 chmod/chown 就可以了。

  • `cat ~/.ssh/id_rsa.pub |如果 .ssh 存在,则 ssh pi@192.168.1.25 "sudo cat >> /root/.ssh/authorized_keys"` 适合您。 (2认同)