将 ssh 密钥复制到另一台机器的最简单方法是什么?

将 ssh 密钥复制到另一台机器的最简单方法是什么?

我在家里很懒,对家用机器使用密码身份验证。我准备转向基于密钥的身份验证。网上有很多关于如何做到这一点的选项,包括 catting 然后 ssh 密钥,直接 scping 密钥等。

我正在寻找最简单且推荐的复制密钥的方法,希望在 Ubuntu ssh 包中的某个地方有一个方便的包装器?

我已经知道如何关闭密码登录

答案1

命令ssh-copy-id(在openssh-客户端包(默认安装)确实做了这样的事情:

ssh-copy-id [email protected]

将您的默认身份(用于其他身份)的公钥复制-i identity_file到远程主机。

默认身份是您的“标准” ssh 密钥。它由~/.ssh目录中的两个文件(公钥和私钥)组成,通常命名为identityid_rsaid_dsa或(与 相同),具体取决于密钥的类型。如果您没有创建多个 ssh 密钥,id_ecdsa则不必担心指定身份,ssh-copy-id 会自动选择它。id_ed25519.pub

如果您没有身份,您可以使用该工具生成一个ssh-keygen

此外,如果服务器使用与默认端口不同的端口(22),则应按以下方式使用引号(来源):

ssh-copy-id "[email protected] -p <port-number>"

答案2

我喜欢 Marcel 的回答。我不知道这个命令。我一直在使用我在Oracle 网站

cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'cat >> .ssh/authorized_keys && echo "Key copied"'

我仍然想在这里发布它,因为它很好地说明了在外壳代码借助 的力量ssh。但使用ssh-copy-id绝对是更安全、更正确的方法!

请注意,如果文件夹.ssh尚不存在,则上述命令将失败。此外,在创建文件时设置最小权限(基本上只有所有者可以读写)可能会更好。以下是更高级的命令:

cat ~/.ssh/id_rsa.pub | ssh <user>@<hostname> 'umask 0077; mkdir -p .ssh; cat >> .ssh/authorized_keys && echo "Key copied"'

答案3

图解法

  1. 打开应用密码和密钥我的个人钥匙
  2. 选择您的密钥,然后单击偏僻的配置安全外壳的密钥

设置计算机进行 SSH 连接

答案4

用于自定义端口

ssh-copy-id -i "[email protected] -p2222"

-i 开关默认为 ~/.ssh/id_rsa.pub,如果您想要另一个密钥,请将密钥的路径放在 -i 后面

警告:如果您没有写 -i,它将复制在 ~/.ssh 中找到的所有密钥。

相关内容