使用expect脚本从远程机器执行ssh

2023-12-26

我是expect脚本的新手,并且有一个用例,在该用例中,我需要从已经使用expect脚本完成ssh的机器上执行ssh。这是我的代码片段

#!/usr/bin/expect -f
set timeout 60
spawn ssh [email protected] /cdn-cgi/l/email-protection

expect "Password: "
send "Password\r"

send "\r" # This is successful. I am able to login successfully to the first machine

set timeout 60
spawn ssh [email protected] /cdn-cgi/l/email-protection  #This fails

这需要一些时间并且无法说 ssh:连接到主机 machine2.domain.com 端口 22:操作超时。我知道 22 是 ssh 运行的默认端口,我可以通过为 ssh 提供 -p 选项来手动覆盖它。

如果我尝试在没有期望脚本的情况下独立进行 ssh,我会收到一条提示,要求我输入(是/否)。如果我直接执行 ssh 而无需期望脚本,那么从哪里获取正确的端口。如果我不需要在 shell 上输入端口号,那么如果我使用 Expect 脚本,为什么需要输入端口号。


到那时,您不会生成新的 ssh:spawn 在您的本地计算机上创建一个新进程。您只需向远程服务器发送命令

#!/usr/bin/expect -f
set timeout 60
spawn ssh [email protected] /cdn-cgi/l/email-protection

expect "Password: "
send "Password\r"

send "\r" # This is successful. I am able to login successfully to the first machine

# at this point, carry on scripting the first ssh session:
send "ssh [email protected] /cdn-cgi/l/email-protection\r"
expect ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用expect脚本从远程机器执行ssh 的相关文章

  • git 附件 / ssh:ControlPath 太长

    运行命令 gitannexsync 时 出现以下错误 ControlPath too long Command ssh S
  • 远程nodejs服务器部署永远

    我正在尝试通过提交后钩子在远程计算机上部署节点js服务器 该钩子将调用远程计算机上执行实际部署的脚本 我面临的问题是 如果我在计算机上运行远程脚本 它可以正常工作 但是当我尝试通过 ssh 命令执行相同的脚本时 服务器无法启动 这就是我的提
  • 在expect脚本中发送INSERT和F12

    我知道为了在期望脚本中发送返回 我会执行以下操作 send r What is the send command for the INSERT and F12 keys I ve looked online and cannot find
  • 登录失败时生成 Python PXSSH GUI

    当登录失败时 我无法阻止 GUI 的生成 失败并生成 GUI 的简单示例 gt gt gt import pxssh gt gt gt gt gt gt ssh pxssh pxssh gt gt gt ssh force password
  • 在远程机器上执行多个命令

    在下面的命令中 我尝试 ssh 命令并执行多个命令 如果任何命令失败 即如果 command1 退出 那么如果 command1 和 commnd 2 退出 否则在远程计算机上执行命令 3 我如何退出 我怎样才能做到这一点 ssh logi
  • 开始作业时无法识别功能

    我在模块 sysinfo psm1 中创建了一个函数 Get Uptime 并导入了该模块 C pstools gt get command Module sysinfo CommandType Name Definition Functi
  • gitosis 要求输入密码

    我已经按照以下说明设置了 gitosis 服务器here http scie nti st 2007 11 14 hosting git repositories the easy and secure way 它对于初始用户来说效果很好
  • 通过私钥使用 Python 进行 SSH

    在我的脚本中 我需要使用私钥通过 SSH 连接到远程系统 并将文件转储到其目录中 我用来 SSH 进入系统的命令是这样的 ssh i private key localhost 接下来是标准输入 输入密钥 private key 的密码 我
  • Capistrano 和 GitHub Private Repo – 权限被拒绝(公钥)

    我继承了一个托管在 Linode 上的 Rails 项目 之前的开发人员使用 BitBucket 存储库以及 Capistrano 进行部署 我已经在 GitHub 上设置了一个私人存储库 并且正在尝试让 Capistrano 配方发挥作用
  • 无法验证主机真实性

    我第一次做git pull 在git中提示无法确定主机的真实性 与我生成的私钥相比 RSA密钥指纹不正确 我只是想知道如何更新它以便它读取正确的文件以及为什么它首先读取错误的指纹 我遇到了类似的问题 这意味着远程主机未知 不受信任 修复方法
  • 无法通过 SSH 连接到 EC2 实例

    因此 我从网上启动了我的实例 下载了密钥对并安装了它 大约一天的时间里一切都运行良好 然后我重新启动了计算机 但我无法再通过 SSH 连接到它 我尝试重新下载密钥对并重新安装它 但我不断收到 权限被拒绝 公钥 错误 这是详细的输出 我也尝试
  • 使用脚本自动输入 SSH 密码

    我需要创建一个自动向 OpenSSH 输入密码的脚本ssh client 假设我需要通过 SSH 进入myname somehost用密码a1234b 我已经尝试过 bin myssh sh ssh myname somehost a123
  • 通过 SSH 的 Pygame 不注册击键(Raspberry Pi 3)

    所以我得到了 raspi 3 和简单的 8x8 LED 矩阵 在玩了一些之后 我决定用 pygame 的事件制作一个简单的蛇游戏 显示在该矩阵上 我之前没有 pygame 的经验 除了 LED 矩阵之外 没有连接任何屏幕 显示器 所以最初的
  • 无法使用 git 配置文件进行 ssh

    我知道它被问了很多次 但我无法得到我的问题的答案 我正在尝试使用配置文件 ssh 到系统 配置文件是 Host qa HostName 10 218 70 345 User user IdentityFile C Users bean ss
  • GoLang ssh:尽管将其设置为 nil,但仍出现“必须指定 HosKeyCallback”错误

    我正在尝试使用 GoLang 连接到远程服务器 在客户端配置中 除了用户和密码之外 我将 HostKeyCallback 设置为 nil 以便它接受每个主机 config ssh ClientConfig User user HostKey
  • (Tcl/Expect) 退出后清屏

    我想在退出我的 半 交互式期望脚本后清除屏幕 在本地计算机上 我可以在脚本中做到这一点吗 这是我尝试过的 但失败了 usr bin expect f set env TERM vt100 spawn ssh Y username domai
  • 使用 paramiko 运行 Sudo 命令

    我正在尝试执行sudo使用 python paramiko 在远程计算机上运行命令 我尝试了这段代码 import paramiko ssh paramiko SSHClient ssh set missing host key polic
  • SSH 无法对 [email protected] 进行身份验证

    最近 我在 Github com 上注册了一个免费计划 我按照他们的说明生成 ssh 密钥以添加到我的帐户 然而 当我尝试ssh v email protected cdn cgi l email protection 我收到此错误 deb
  • 使用 ChannelExec 的命令未执行 - Jsch

    我正在使用 Jsch 在服务器中创建一个文件并执行一些命令 对于文件创建 它工作正常 但是对于命令执行 则不然 它保持状态 1 仍在处理它 并永远保持该状态 这种情况发生在 shell 执行或我尝试成为 root 时 请按照以下方法操作 p
  • ssh远程变量赋值?

    以下内容对我不起作用 ssh email protected cdn cgi l email protection k 5 echo k 它只是返回一个空行 如何在远程会话 ssh 上分配变量 Note 我的问题是not关于如何将本地变量传

随机推荐

  • SQL Server 中有类似“生存时间”的选项吗?

    SQL Server 中有类似 生存时间 的选项吗 最近我了解了Scylla DB中的Time to Live 我想知道跨数据库尤其是 SQL Server 是否可以使用相同的选项 我在 Internet 上搜索过 但找不到 SQL Ser
  • SQL对多个表建立索引,可以做到吗?

    一直在寻找解决方案一段时间了 转到 1 或 2 跳过描述 首先我会解释一下情况 我公司已经升级了我们的 erp 系统 我的主要工作是创建公司其他人使用的列表 我从该系统数据库中获取所有数据 在升级过程中 我们转换了一些数据以匹配新版本 其中
  • 什么是 MySQL 外键?

    在 Stack Overflow 的一个回答中 我看到了这段代码 CREATE TABLE Favorites user id INT NOT NULL movie id INT NOT NULL PRIMARY KEY user id m
  • Sql - SELECT 行,直到行的总和达到某个值

    我在这里看到了其他类似的问题 但它们并不能完全满足我的需求 至少我是这么认为的 我有一个包含以下列的 receipts 表 收据 客户ID 数量 让我们说 我有 5 张来自客户 1 的未付款收据 reciept id 1 Ammount 1
  • 如何链接到 boost date_time

    Example 我有一个 Rcpp 函数 我想调用它boost posix time time from string 我从以下位置获取了示例代码增强文档 https www boost org doc libs 1 65 0 doc ht
  • Java包循环检测:如何找到涉及的具体类? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 您推荐什么工具来检测Java包循环依赖 知道目标是明确列出检测到的 跨包循环 中涉及的特定类 我知道关于
  • ASP.NET 中的基本表单身份验证有多安全?

    想象一下 您有一个只有 2 个页面的简单网站 login aspx 和 Secret aspx 仅使用 ASP net 表单身份验证和 login aspx 上的 ASP net 登录服务器控件来保护您的站点 详情如下所示 该站点配置为使用
  • 如何在mySQL中动态选择列名

    我想选择列名 但我事先不知道表结构 并且它可能会改变 所以我不能只用列名对 select 语句进行硬编码 我也不想选择每一列 有没有简单的方法可以做到这一点 我的想法是这两个查询的某种组合 但我的 SQL 不是那么好 SHOW COLUMN
  • 是什么导致我的参数超出范围异常? [复制]

    这个问题在这里已经有答案了 我试图测试我的列表是否正在从数据库收集数据 但是当我尝试获取消息框以从列表中打印邮政编码时 它给了我例外 System ArgumentOutOfRangeException 索引超出范围 必须为非负数且小于集合
  • Android 图像缓存 - 如何?

    我想以前已经问过很多次了 但仍然有些事情我不太明白 我尝试了两种不同的方法 将所有图像保留在内存中 当开始超过一定限制时 开始删除它们 让 Android 使用 SoftReferences 解决这个问题 2 有时 我分配它们时 它只是清理
  • 如何处理文件路径中的 ~

    我正在编写一个简单的命令行 Java 实用程序 我希望用户能够使用以下命令传递相对于其主目录的文件路径 操作员 所以像 Documents 我的问题是有没有办法让Java自动解析这种类型的路径 或者我是否需要扫描文件路径 操作员 看来这种类
  • 为什么 Perl 函数“map”给出错误“Map 参数不足”

    这是我不明白的事情 该脚本工作正常 注意映射函数中的串联 usr bin perl use strict use warnings use Data Dumper my aa map a gt 1 1 3 print Dumper aa E
  • 使用 Jinja2 在 html 文件中嵌入 png 图像

    我正在使用 Jinja2 将 html 报告创建为单个 html 文件 我想在 html 文件中包含公司徽标 而不是链接到它 这样 即使阅读报告的人处于离线状态 也会显示徽标 使用 Jinja2 可以自动完成此操作吗 如果不是 我如何手动在
  • 我可以阻止手机在网页上休眠吗

    在应用程序中我可以使用http developer android com reference android os PowerManager WakeLock html http developer android com referen
  • 虚函数表偏移量

    我想问一下 类的虚函数表的偏移量取决于什么 我的意思是 从我读到的内容来看 它至少取决于编译器 但它是否因类而异 编辑 通过偏移我的意思是表相对于所有者对象的地址的位置 编辑 示例代码 void vtable void char objec
  • 为什么在使用 MSpec/Moq 测试此异步方法时会收到 NullReferenceException?

    我想测试异步方法是否返回正确的类型 此方法使用依赖类中的另一个异步方法 依赖类实现此接口 Task
  • 在 dotnet core SDK 版本之间切换

    我最近安装了 VS 2017 RC 然后我的 dotnet 版本自动指向1 0 0 preview4 004233 因此 每当我使用命令创建新项目时dotnet new t Console我看不见project json虽然我看到 cspr
  • 如何在quarkus microprofile案例中配置rest客户端

    当使用 Quarkus microprofile 作为 REST 客户端时 如何配置底层 HttpClient 比如重试次数 每个主机的连接池大小等等 另外是否可以以某种方式强制客户端重新启动 因此连接池将重新启动 https downlo
  • 转发器内动态控件的视图状态问题

    最近 我在使用要添加动态控件的中继器时遇到了一个问题 虽然我有一个解决方法 在功能上完全符合我想要的功能 但我想知道是否有更好的方法为了我的理解 我使用 ASP NET 已经有大约 6 个月了 每次我认为我已经掌握了页面生命周期 视图状态时
  • 使用expect脚本从远程机器执行ssh

    我是expect脚本的新手 并且有一个用例 在该用例中 我需要从已经使用expect脚本完成ssh的机器上执行ssh 这是我的代码片段 usr bin expect f set timeout 60 spawn ssh email prot