首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >脚本与ssh连接到具有密码的远程服务器。

脚本与ssh连接到具有密码的远程服务器。
EN

Unix & Linux用户
提问于 2017-01-03 05:32:51
回答 1查看 6.4K关注 0票数 1

我从一台远程计算机连接到一个网络中的多台远程计算机。所有远程计算机的用户名和密码是相同的。我想要写一个脚本,将使用我的用户名,并通过登录到机器。我不能在主机上安装任何工具(expect或sshpass)。将公钥复制到目标远程计算机没有意义,因为我很少不止一次地连接到同一台机器。每天都有新机器。

是否可以在主机上设置ssh,使其能够连接到远程计算机,而不需要在目标计算机上设置一些东西?

用于连接到网络其余部分的本地机器- 11 SP3

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2017-01-03 07:51:41

考虑到这些需求,我将在本地计算机上安装expect,并使用它添加一个新命令。让我们调用远程主机onemany1many2和本地机器mybox。像这样的东西(未经测试)

代码语言:javascript
运行
AI代码解释
复制
#!/usr/bin/expect
# connect to "one"
spawn ssh username@one
# next lines shouldn't be needed, should have shared keys for "one"
expect "assword: "
# provide password for "one", ending with "\r"
send -- "the_password_for_username@one\r"
# mainloop
interact "~p" {
    send "ssh manyuser@[lindex $argv 0]\r"
    expect "yes/no)? " { send "yes\r" exp_continue } "assword: "
    send "the_password_for_many\r"
    }

mybox上以./script many1的形式运行它,它将连接到one

然后,当您想连接到many1时,只需键入~p。它将运行ssh命令,回答“您想要连接”的问题,并提供密码。

当然,关于在脚本中存储密码的不安全性的标准注释也适用。另一个轻微的缺点是,您需要为此指定一个关键序列。这里我使用的是~p,但是您可以使用函数键。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/334534

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文