怎么生成免密以及将免密拷贝到其它机器上
时间: 2024-05-04 10:20:44 浏览: 31
生成免密的方法如下:
1. 在本地机器上生成公私钥对:
```
ssh-keygen -t rsa
```
2. 将公钥拷贝到远程机器上:
```
ssh-copy-id <username>@<remote_ip>
```
3. 输入远程机器用户密码,将本地机器的公钥添加到远程机器的`authorized_keys`文件中。
现在,你可以通过`ssh <username>@<remote_ip>`直接登录到远程机器而无需输入密码。
如果你想将免密拷贝到其他机器上,可以将本地机器的`~/.ssh/id_rsa.pub`文件内容复制到其他机器的`~/.ssh/authorized_keys`文件中。也可以使用命令`ssh-copy-id`将公钥拷贝到其他机器上。
相关问题
linux机器上使用shell脚本并行拷贝文件或文件夹到多台其他linux服务器上
可以使用`rsync`命令和`ssh`命令来实现在多台 Linux 服务器之间并行拷贝文件或文件夹。
`rsync`是一个优秀的文件同步工具,可以快速的将本地或远程服务器的文件同步到其他服务器上,同时它可以使用 SSH 连接进行加密传输,确保数据传输的安全和完整性。
以下是一个示例脚本,可以并行地将文件或文件夹拷贝到多个目标服务器上:
```bash
#!/bin/bash
# 源文件或目录
src="source-dir"
# 目标服务器的 IP 地址或域名
hosts=("server1" "server2" "server3")
# 目标服务器的用户名
user="username"
# 目标服务器的目标路径
dest="destination-dir"
# 并行执行 rsync 命令
for host in "${hosts[@]}"; do
ssh "$user@$host" "mkdir -p $dest && rsync -avz $src/ $user@$host:$dest/" &
done
# 等待所有任务完成
wait
```
在这个脚本中,`src` 变量是需要拷贝的源文件或目录,`hosts` 变量是一个包含目标服务器 IP 地址或域名的数组,`user` 变量是目标服务器的用户名,`dest` 变量是目标路径。该脚本通过 SSH 连接到每个目标服务器,并在后台运行 `rsync` 命令来完成拷贝任务。`wait` 命令用于等待所有任务完成后再结束脚本执行。
需要注意的是,该脚本需要在执行之前确保已经配置好了 SSH 免密登录,否则需要手动输入密码进行登录。同时,如果文件或文件夹较大,可能需要增加 `rsync` 命令的额外选项来加速拷贝,例如使用 `--progress` 显示进度信息,或使用 `--partial` 支持断点续传等。
centos7配置免密
在CentOS7上配置免密登录的步骤如下:
1. 在需要免密登录的各个主机上生成密钥对,使用命令:ssh-keygen -t rsa
2. 进入.ssh目录,如果目录不存在则创建,使用命令:cd /root/.ssh
3. 将公钥导入至authorized_keys文件中,使用命令:cp id_rsa.pub authorized_keys
4. 登录主机slave1,并将公钥拷贝到master的authorized_keys文件中,使用命令:ssh-copy-id -i master
5. 在master上修改文件权限,使用命令:chmod 700 ~/.ssh和chmod 600 authorized_keys
6. 将authorized_keys文件复制到其他机器,使用命令:scp /root/.ssh/authorized_keys root@slave1:/root/.ssh/authorized_keys和scp /root/.ssh/authorized_keys root@slave2:/root/.ssh/authorized_keys
7. 测试免密登录是否成功,使用命令:ssh master date、ssh slave1 date、ssh slave2 date