小编Sup*_*man的帖子

将Bash脚本SSH连接到计算机而不提示密码且不使用密钥

我发现这个问题已被问过几次,但在我搜索的任何地方都找不到相关的答案.

我正在开发环境中工作,安全性不是问题,任何人都可以猜测密码,如果想到几秒钟.

我想做的很简单.我已在我的本地.bashrc文件中创建了一个别名函数,我希望此函数能够自动登录到具有默认密码的计算机.

我目前的实现看起来像这样:

function s () { 
 ssh root@192.168.1.$1
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我得到这样的东西:

~]s 122

ssh root@192.168.1.122

root@192.168.1.122's password: 
Run Code Online (Sandbox Code Playgroud)

使用Bash,而不使用RSA密钥我想使用默认密码'password'.

我已经尝试了以下IP和用户已经设置的地方.

Do=$(expect -c "
spawn ssh $User@${IP[0]}.${IP[1]}.${IP[2]}.${IP[3]} 
expect \"yes/no\" 
send \"yes\r\" 
expect \"assword\" send \"password\"")
echo $Do
$Do
Run Code Online (Sandbox Code Playgroud)

它给出了以下错误:

Connecting and logging into server using expect
usage: send [args] string
    while executing
"send"
    invoked from within
"expect "assword" send "password""
 Administrator@192.168.1.176's password:
bash: spawn: command not found...
Run Code Online (Sandbox Code Playgroud)

使用以下命令,我可以连接一台机器.如果我删除了交互,它只运行uptime命令并关闭连接.使用interaction命令,我无法看到我正在键入的内容或实际与机器进行交互.有任何想法吗?

Do=$(expect -c "spawn ssh $User@${IP[0]}.${IP[1]}.${IP[2]}.${IP[3]}; set timeout 4; expect \"assword\"; send \"password\n\"; expect …
Run Code Online (Sandbox Code Playgroud)

ssh bash

6
推荐指数
2
解决办法
4万
查看次数

如何在tcl开关语句中使用或?

我想在我的脚本中有一个很大的选项列表.用户将提供仅与这些选项之一匹配的输入.我希望能够有多个不同的选项运行相同的命令,但我似乎无法让OR运行.以下是我认为它应该是什么样的,关于如何使a或b线工作的任何想法?

switch -glob -- $opt {
   "a" || "b" {
      puts "you selected a or b, probably not both"
   }
   default {
      puts "Your choice did not match anything"
   }
}
Run Code Online (Sandbox Code Playgroud)

tcl

6
推荐指数
1
解决办法
1万
查看次数

如果我可能没有收到所有4个八位字节作为输入,如何使用Bash如何将IP地址分成4个Octet变量?

我正在编写一个将在bash中运行的脚本.

该程序的预期输入看起来像以下4种情况之一:

运行192.168.1.1 [其他参数]

运行168.1.1 [其他参数]

运行1.1 [其他参数]

运行1 [其他参数]

鉴于任何这些情况,我想拥有以下数组.

IP [0] = 192

IP [1] = 168

IP [2] = 1

IP [3] = 1

第四个Octet将永远是必需的.如果没有提供其他的,则默认为192.168.1.x.

我看到这个页面分隔八位字节,但我不知道如何解释我需要处理的4种不同的输入情况.这里.

任何有关如何改进或实施此建议的帮助或建议将不胜感激.

谢谢.

ip bash

0
推荐指数
1
解决办法
2400
查看次数

标签 统计

bash ×2

ip ×1

ssh ×1

tcl ×1