shell脚本在本机上开启多个连接远程机器的终端

时间: 2023-10-21 11:25:09 浏览: 47
您可以使用 SSH 命令在本机上开启多个连接远程机器的终端。以下是一个示例脚本: ```shell #!/bin/bash # 定义远程机器的 IP 地址和用户名 remote_ip="192.168.1.100" remote_user="user" # 循环开启多个终端连接远程机器 for i in {1..5} do gnome-terminal -e "ssh $remote_user@$remote_ip" done ``` 在上面的脚本中,我们使用了 `gnome-terminal` 命令来开启终端,并使用 `ssh` 命令连接远程机器。您可以根据需要修改远程机器的 IP 地址和用户名,并在循环中指定要开启的终端数量。
相关问题

shell脚本在本机上开启多个连接远程机器的终端并且自动输入密码

您可以使用expect工具编写一个脚本来实现这一功能。以下是一个例子: ```bash #!/usr/bin/expect set user username set password yourpassword spawn ssh $user@remotehost1 expect "password:" send "$password\r" interact spawn ssh $user@remotehost2 expect "password:" send "$password\r" interact # add more remote hosts as needed ``` 将上面的代码保存为一个文件,例如“connect.sh”,然后在终端中运行“expect connect.sh”即可。这将启动多个SSH连接,并自动输入密码。请注意,这种做法是不安全的,因为密码是明文存储在脚本中的。建议使用SSH密钥认证来替代密码认证。

shell脚本 批量推送公钥

### 回答1: 批量推送公钥可以通过使用 SSH 的 authorized_keys 文件来实现。下面是一个示例脚本,可以将本地的公钥推送到多个远程主机上: ```bash #!/bin/bash # 设置需要推送的公钥文件路径 pubkey_path=~/.ssh/id_rsa.pub # 读取需要推送的主机列表 read -p "Enter remote hosts (separated by space): " hosts # 读取需要推送的用户 read -p "Enter remote user: " user # 循环遍历主机列表,将公钥复制到 authorized_keys 文件 for host in $hosts; do ssh $user@$host "mkdir -p ~/.ssh && chmod 700 ~/.ssh && touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && cat >> ~/.ssh/authorized_keys" < $pubkey_path done ``` 在运行脚本时,会提示输入需要推送公钥的远程主机列表和远程用户,然后将本地的公钥文件复制到远程主机的 authorized_keys 文件中。注意,脚本需要在本地已经存在公钥文件,并且需要在远程主机上安装了 SSH 服务。 ### 回答2: 批量推送公钥是一种在多个远程服务器上自动化部署公钥的方法,可以方便地实现无需人工干预的SSH远程登录。 在Shell脚本中,我们可以使用以下的步骤来批量推送公钥: 1. 在脚本中定义一个包含远程服务器IP地址的数组,例如: ``` servers=("192.168.1.101" "192.168.1.102" "192.168.1.103") ``` 2. 使用一个循环结构来遍历数组中的IP地址,并执行以下操作: a. 生成公钥对(如果不存在的话): ``` if [ ! -f ~/.ssh/id_rsa.pub ]; then ssh-keygen -t rsa -q -N '' -f ~/.ssh/id_rsa fi ``` b. 使用ssh-copy-id命令将公钥拷贝到远程服务器: ``` ssh-copy-id user@$server ``` 其中,`user`是远程服务器登录的用户名,`$server`是当前遍历到的IP地址。 3. 将以上代码保存为一个Shell脚本文件(例如`push_keys.sh`),并添加执行权限。 4. 在终端中执行Shell脚本: ``` ./push_keys.sh ``` 这样,脚本将会自动遍历数组中的每个IP地址,生成并推送公钥到对应的远程服务器上。 需要注意的是,在执行ssh-copy-id命令时,可能会提示输入远程服务器的登录密码。为了避免这个问题,可以事先使用SSH Agent来管理私钥,或者在远程服务器上配置免密码登录。 希望以上回答对您有帮助! ### 回答3: Shell脚本批量推送公钥是一种方便快捷的方式,可以帮助用户在多台远程服务器上进行公钥的部署。下面是一个简单的Shell脚本示例: ``` #!/bin/bash # 指定要推送的公钥文件路径 public_key_file="path_to_public_key.pub" # 定义要连接的远程服务器列表 remote_servers=("server1" "server2" "server3") # 循环遍历远程服务器列表 for remote_server in "${remote_servers[@]}" do # 使用ssh-copy-id命令将公钥推送到远程服务器 ssh-copy-id -i $public_key_file $remote_server # 检查推送是否成功 if [ $? -eq 0 ] then echo "公钥已成功推送到服务器 $remote_server" else echo "公钥推送失败到服务器 $remote_server" fi done ``` 以上脚本假设您已经在本地生成了一个公钥文件,并且将路径存储在`public_key_file`变量中。您需要将`remote_servers`变量替换为您要推送公钥的实际远程服务器列表。 脚本中使用的`ssh-copy-id`命令可以将公钥复制到远程服务器的`~/.ssh/authorized_keys`文件中,完成公钥部署。在每个循环迭代中,脚本会检查命令的返回值来确定公钥是否成功推送到远程服务器。 使用这个Shell脚本,您可以轻松地在多台远程服务器上批量推送公钥,提高工作效率并加强服务器安全性。

相关推荐

最新推荐

recommend-type

shell脚本实现同时多台远程主机执行命令的代码分享

主要给大家介绍了关于shell脚本实现同时多台远程主机执行命令的方法,文中给出了详细的代码示例,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
recommend-type

shell脚本连接、读写、操作mysql数据库实例

主要介绍了shell脚本连接、读写、操作mysql数据库实例,本文包含连接、读取、插入、创建数据库等操作示例,需要的朋友可以参考下
recommend-type

250个shell脚本

Shell可以直接使用在win/Unix/Linux上面,并且可以调用大量系统内部的功能来解释执行程序,如果熟练掌握Shell脚本,可以让我们操作计算机变得更加轻松,也会节省很多时间。 本篇文档整理了来自网络的250个shell脚本...
recommend-type

ubuntu中编写shell脚本开机自动启动(推荐)

主要介绍了ubuntu中编写shell脚本开机自动启动,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
recommend-type

Shell脚本中多命令逻辑执行顺序的方法详解

”、双and号“&&”和双竖线“||”来连接多个命令,这篇文章主要介绍了Shell脚本中多命令逻辑执行顺序的方法,本文给大家介绍的非常详细,对大家的工作或学习具有一定的参考借鉴价值,需要的朋友参考下
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB柱状图在信号处理中的应用:可视化信号特征和频谱分析

![matlab画柱状图](https://img-blog.csdnimg.cn/3f32348f1c9c4481a6f5931993732f97.png) # 1. MATLAB柱状图概述** MATLAB柱状图是一种图形化工具,用于可视化数据中不同类别或组的分布情况。它通过绘制垂直条形来表示每个类别或组中的数据值。柱状图在信号处理中广泛用于可视化信号特征和进行频谱分析。 柱状图的优点在于其简单易懂,能够直观地展示数据分布。在信号处理中,柱状图可以帮助工程师识别信号中的模式、趋势和异常情况,从而为信号分析和处理提供有价值的见解。 # 2. 柱状图在信号处理中的应用 柱状图在信号处理
recommend-type

hive中 的Metastore

Hive中的Metastore是一个关键的组件,它用于存储和管理Hive中的元数据。这些元数据包括表名、列名、表的数据类型、分区信息、表的存储位置等信息。Hive的查询和分析都需要Metastore来管理和访问这些元数据。 Metastore可以使用不同的后端存储来存储元数据,例如MySQL、PostgreSQL、Oracle等关系型数据库,或者Hadoop分布式文件系统中的HDFS。Metastore还提供了API,使得开发人员可以通过编程方式访问元数据。 Metastore的另一个重要功能是跟踪表的版本和历史。当用户对表进行更改时,Metastore会记录这些更改,并且可以让用户回滚到
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。