#!/bin/bash
ip=$1
uname=$2
password=$3
filepath=/usr/$uname/.ssh/id_rsa.pub
if [ $uname = "root" ];then
filepath=/root/.ssh/id_rsa.pub
fi
echo "===========resrsa===================="
expect <<EOF
spawn ssh-copy-id -i $filepath $uname@$ip
expect {
"*yes/no" {
send "yes\r";
exp_continue
}
"*password:" {
send "$password\r"
}
}
expect eof
EOF
分享到:
相关推荐
本文将详细讲解如何使用shell脚本来批量执行`ssh-copy-id`,以提高效率。 ### 需求 批量自动化地将本地的SSH公钥发送到一系列远程主机。这在管理大量服务器或集群时非常有用,避免了手动逐个配置的繁琐过程。 ### ...
运行脚本后,批量扫描主机自动执行ssh-copy-id,自动输入密码。完成批量主机ssh无口令配置
使用`ssh-copy-id`命令将公钥复制到远程服务器: ``` ssh-copy-id user@remote_server ``` 这会将公钥添加到远程用户的`~/.ssh/authorized_keys`文件中。 3. **配置expect脚本**: `expect`可以用来自动化SSH...
spawn ssh-copy-id -i /root/.ssh/id_rsa root@$ip expect "yes/no" { send "yes\r" exp_continue } expect "password:" { send "$passwd\r" } interact ``` 这个脚本将自动将公钥复制到远程服务器,实现 SSH...
- 将生成的公钥复制到目标服务器:`ssh-copy-id -i ~/.ssh/id_rsa.pub username@hostname` 配置完成后,可以通过以下命令实现免密码执行远程命令: ```bash ssh -o "StrictHostKeyChecking no" username@...
spawn ssh-copy-id -i ~/.ssh/id_rsa.pub root@***.***.*.** expect "Are you sure you want to continue connecting (yes/no)?" send "yes\r" expect "password:" send "123\r" interact ``` ### 自动登录Harbor ...
5. **密钥对管理**:将本地的公钥复制到远程服务器的`~/.ssh/authorized_keys`文件中,可以使用`ssh-copy-id`命令: ``` ssh-copy-id -i ~/.ssh/id_rsa.pub user@example.com ``` 6. **SSH代理转发**:SSH代理...
使用ssh-keygen生成密钥对,并通过ssh-copy-id复制公钥到远程服务器后,下次使用ssh登录时,就不再需要密码,而是直接通过密钥对进行身份验证。这不仅适用于ssh登录,同样也适用于scp命令进行文件的加密传输。 通过...
在自动化场景中,SSH还可以与脚本结合,如expect库或sshpass工具,实现无人值守的登录和执行命令。例如,使用sshpass命令行工具可以避免手动输入密码: ```bash sshpass -p 'password' ssh user@remote_host '...
命令`ssh-keygen`可以用来生成密钥对,`ssh-copy-id`则用于将公钥复制到远程主机。 批量IP操作通常需要编写脚本,如bash脚本。例如,你可以创建一个包含所有目标IP地址的文本文件,然后在脚本中循环读取这些IP,对...
ssh-copy-id user@server_ip ``` 6. **测试SSH连接**:最后,尝试无密码登录到服务器: ``` ssh user@server_ip ``` 在"mofa"这个文件中,可能包含了更详细的步骤、配置示例或者相关脚本,用于辅助理解SSH的...
9. **自动化脚本**:SSH还可以配合expect工具实现自动化脚本执行远程命令,这对于批量管理服务器非常有用。 10. **安全性与最佳实践**:保持SSH版本更新,限制无效的登录尝试,使用防火墙限制SSH的访问源,以及定期...
function sshcopyid { expect -c " set timeout -1; spawn ssh-copy-id $1; expect { \"yes/no\" { send \"yes\r\"; exp_continue; } \"password:\" { send \"$PASSWD\r\"; exp_continue; } }; expect eof; ...
8. **免密登录**:使用`ssh-copy-id`命令将公钥复制到远程服务器,配置完成后,客户端即可无密码登录到服务器。 9. **SSH代理**:SSH代理(SSH Agent)可以缓存已验证的密钥,避免重复输入私钥密码,方便多台服务器...
`ssh_setup.py`是一个类似的功能,它用于自动化配置SSH免密登录,但使用的是`ssh-keygen`和`ssh-copy-id`命令。这些Python脚本展示了如何利用脚本处理多台服务器的批量配置。 总结来说,通过`expect`可以编写自动化...
2. **复制公钥**:使用`ssh-copy-id`命令将本地用户的公钥复制到目标服务器的`authorized_keys`文件中。如果没有这个命令,可以手动将`~/.ssh/id_rsa.pub`的内容追加到目标服务器的`~/.ssh/authorized_keys`文件。 ...
4. **ssh-copy-id**:方便地将本地公钥复制到远程服务器,简化密钥对认证设置。 5. **tmux** 或 **screen**:在SSH会话中实现多窗口或会话复用,即使断开连接也能保持进程运行。 **SSH配置与优化** 1. **配置文件*...
标签“源码”和“工具”暗示了这篇博客可能包含了一些SSH相关工具的源代码示例,例如`ssh-keygen`用于生成密钥对,`ssh-copy-id`用于复制公钥到远程主机,或者可能是自定义的SSH客户端实现。源码分析可以帮助读者...
3. 管理公钥:可以使用`ssh-copy-id`命令方便地将公钥复制到远程服务器。 四、SSH隧道与端口转发 1. 局域网穿透:SSH隧道可以将本地机器的某个端口转发到远程服务器,实现局域网内的服务对外访问。 2. 安全代理:...