在Linux系统中,批量推送SSH密钥通常涉及到以下几个基础概念:
~/.ssh/
目录下,authorized_keys
文件包含了允许通过SSH登录该用户的公钥列表。假设你有一组服务器的IP地址或主机名,并且你想在这些服务器上批量推送你的SSH公钥。以下是一个使用ssh-copy-id
命令的示例:
#!/bin/bash
# 你的SSH公钥文件路径
PUB_KEY="/path/to/your/id_rsa.pub"
# 服务器列表文件,每行一个IP地址或主机名
SERVER_LIST="/path/to/your/server_list.txt"
# 读取服务器列表并推送公钥
while read -r SERVER; do
ssh-copy-id -i "$PUB_KEY" "$SERVER"
done < "$SERVER_LIST"
~/.ssh
目录或authorized_keys
文件权限不正确,ssh-copy-id
可能会失败。确保~/.ssh
目录权限为700
,authorized_keys
文件权限为600
。ssh-rsa
或ssh-ed25519
开头。如果遇到权限问题,可以使用以下命令修复:
ssh user@server "mkdir -p ~/.ssh && chmod 700 ~/.ssh"
ssh user@server "touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
通过以上步骤,你可以实现Linux系统中批量推送SSH密钥的操作,并解决常见的问题。
领取专属 10元无门槛券
手把手带您无忧上云