Dou*_*ner 11 ssh authorized-keys
我正在尝试将公共 id_rsa.pub 文件从我的 Mac 发送到 Linux 服务器上我的主目录中的 ~/.ssh/authorized_keys 目录,这样我就可以访问而无需每次登录。
从我的 Mac 终端,我使用这个命令:
cat ~/.ssh/id_rsa.pub | ssh username@remoteserver 'cat >> ~/.ssh/authorized_keys'
Run Code Online (Sandbox Code Playgroud)
如果远程 ~/.ssh 目录已经存在,则此方法有效,否则无效。在这种情况下,我必须先登录远程服务器,创建 .ssh 目录,然后注销,然后运行上述命令。之后,我可以在不登录的情况下通过 ssh 连接到远程服务器。
我需要为几十台服务器执行此操作,所以我想知道是否有一种方法可以修改上述命令以创建远程 .ssh 目录(如果它尚不存在)。
谢谢,
道格
Kam*_*ski 30
ssh-copy-id通常ssh-copy-id会处理不存在的目录或文件。如果可以,请使用它;不要重新发明轮子。
ssh-copy-id(无论出于何种原因)在远程端,您在 shell 中运行命令。运行更多命令。确保额外的命令在执行之前cat不会使用stdin (</dev/null如果需要,请使用)。这里既不使用标准输入,cd也不mkdir使用标准输入,所以这应该有效:
cat ~/.ssh/id_rsa.pub | ssh username@remoteserver '
cd ~/ || exit
mkdir -pm 700 .ssh
cat >> .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
'
Run Code Online (Sandbox Code Playgroud)
笔记:
-pmkdir如果./.ssh已作为目录存在,则不会抱怨。-m 700 从一开始就设置正确的模式。代码可以改进。我的主要观点是您不仅限于单个cat.
| 归档时间: |
|
| 查看次数: |
1141 次 |
| 最近记录: |