我知道这个问题已经被问过几次了,但是我在搜索中找不到任何相关的答案。

我在一个开发环境中工作,在这个环境中安全性不是问题,只要思考几秒钟,任何人都可以猜测密码。

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

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

function s () {

ssh root@192.168.1.$1

}

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

~]s 122

ssh root@192.168.1.122

root@192.168.1.122's password:

使用Bash,而不使用RSA密钥,我想使用默认的密码" password"。

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

Do=$(expect -c"

spawn ssh $User@${IP[0]}.${IP[1]}.${IP[2]}.${IP[3]}

expect "yes/no"

send "yes

"

expect "assword" send "password"")

echo $Do

$Do

它给出了以下错误:

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...

使用以下命令,我可以连接机器。如果删除交互,它将运行uptime命令并关闭连接。使用interact命令,我看不到我正在键入的内容或与机器实际交互的内容。有任何想法吗?

Do=$(expect -c"spawn ssh $User@${IP[0]}.${IP[1]}.${IP[2]}.${IP[3]}; set timeout 4; expect "assword"; send "password

"; expect "test"; send "uptime

"; interact;");echo $Do;

spawn命令是否设置了环境?如果没有,那么将不会设置路径,并且它将不知道在哪里寻找ssh。尝试将完整路径放入可执行文件。

只是想知道,您对RSA密钥的厌恶是什么?设置新系统时,我总是做的第一件事就是授权RSA密钥。

我不想使用RSA密钥,因为我正在使用许多不同的服务器,这些服务器的生命周期非常有限,因此该脚本将被许多人使用。其想法是通过不必键入密码来节省时间。每次都使用相同的密码。如果每次我第一次访问新计算机以ssh-copy-id标识其上的密钥时,都必须输入密码,那么这将达到目的。

@Jay您是在说期望spawn命令不会知道如何处理ssh,而是应该使用/ bin / ssh?

@SuperTetelman,为什么不将RSA密钥与脚本一起发送并让脚本使用ssh -i?

@SuperTetelman是的,它很简单,可以尝试。 Cron脚本有这个问题。

密钥是一个更好的解决方案。首先如何设置这些使用寿命有限的服务器?无论您使用什么来获取root密码集,都可以轻松地安装authorized_keys文件。

您可以使用expect工具执行此操作:http://expect.sourceforge.net/

它广泛可用,因此根据您的系统,将安装sudo apt-get install expect或yum install expect等效项。

这是带有ssh的expect脚本的示例。 这将使您登录并控制交互式提示:

#!/usr/bin/expect

set login"root"

set addr"127.0.0.1"

set pw"password"

spawn ssh $login@$addr

expect"$login@$addr\'s password:"

send"$pw

"

expect"#"

send"cd /developer

"

interact

这是一个如何在bash脚本中使用expect的示例。 使用ssh登录,使用cd登录到/ var,运行脚本,然后退出ssh会话。

#!/bin/bash

...

login_via_ssh_and_do_stuff() {

# build the expect script in bash

expect_sh=$(expect -c"

spawn ssh root@127.0.0.1

expect "password:"

send "password

"

expect "#"

send "cd /var

"

expect "#"

send "chmod +x my_script.sh

"

expect "#"

send "./my_script.sh

"

expect "#"

send "exit

"

")

# run the expect script

echo"$expect_sh"

}

您可以将这些片段保留在本地系统的脚本中,然后仅是脚本的别名。

另外:我知道您说安全性不是问题,但我想再次指出,不使用密码的"正确" ssh方式是使用ssh key-pair =)

@凯文:负面:pantz.org/software/expect/expect_examples_and_tips.html

我已经为期望脚本使用了 n和 r。 是否推荐其中一个?

使用主要Linux-es的软件包存储库中提供的sshpass。

例如,当密码在password.txt文件中时:

sshpass -fpassword.txt ssh username@hostname

sshpass runs ssh in a dedicated tty, fooling it into thinking it is

getting the password from an interactive user.

计算机术语解ssh,将Bash脚本SSH到计算机中而不提示密码和不使用密钥相关推荐

  1. cd .ssh返回-bash: cd: .ssh:No such file or directory怎么办

    出现如下界面 有时候没必要在细节上过于拘泥, 不如直接配置秘钥,反而一切都妥妥的了. 转载于:https://www.cnblogs.com/7758521gorden/p/7979801.html

  2. 计算机术语awage表示什么,计量经济学第3章计算机习题

    <计量经济学第3章计算机习题>由会员分享,可在线阅读,更多相关<计量经济学第3章计算机习题(11页珍藏版)>请在人人文库网上搜索. 1.班级:金融学106班 姓名:丁涛 学号: ...

  3. 韩语计算机术语大全,韩语学习:韩语计算机、互联网术语 - 英语家园

    가 가상 virtual 虚拟 가상세계 cyber space 虚拟世界 검색 search 搜索.检索 검색엔진 search engine 探索引擎 게시판 BBS (Bulletin Boar ...

  4. linux sftp账号密码脚本传文件,关于shell:如何使用Bash脚本中的密码运行sftp命令?...

    我需要从Linux主机使用sftp将日志文件传输到远程主机.我的操作组已为我提供了相同的凭据.但是,由于我无法控制其他主机,因此无法生成RSA密钥并与其他主机共享. 那么,有没有一种方法可以通过cro ...

  5. linux ssh密钥对,Mac使用ssh密钥登录Linux

    ssh登录Linux通常有两种方法:用户名密码登录.用户名密钥登录:使用用户名密码登录每次都要输入密码,相当麻烦,而使用用户名密钥登录则可以避免这个问题. 创建密钥对文件 打开本地终端,执行 ssh- ...

  6. linux远程执行本地脚本,ssh远程执行命令方法和Shell脚本实例

    写这篇博客之前,我google了一堆相关文章,大都是说修改/etc/sudoers,然后NOPASSWD:指定的cmd,但是真心不管用,没有远程虚拟终端这个方法就是浮云,ubuntu10.04 ser ...

  7. linux ssh非交互脚本,Linux expect非交互式执行脚本

    expect简介 expect是一款自动化的脚本解释型的工具. expect基于tcl脚本,expect脚本的运行需要tcl的支持. expect对一些需要交互输入的命令很有帮助,比如ssh ftp ...

  8. shell脚本ssh登录并执行命令_Linux批量免密码SSH登录案例

    一.为什么要免密码登录Linux系统 1.日常使用更方便(不是主要原因) 2.通过ansible等自动化运维工具,批量管理多台服务器,那么控制节点需要免密登录各个被控主机. 2.云环境中实现自动化扩展 ...

  9. shell脚本ssh到远程服务器并执行命令

    shell远程执行: 经常需要远程到其他节点上执行一些shell命令,如果分别ssh到每台主机上再去执行很麻烦,因此能有个集中管理的方式就好了.一下介绍两种shell命令远程执行的方法. 前提条件: ...

最新文章

  1. IF10+的数据库文章!这里有5个案例,一起发起来?
  2. 刷脸支付问题多,亚马逊选择刷「手掌」,在无人超市正式商用
  3. Windows 10 LTSC添加UWP支持
  4. 企业分布式微服务云SpringCloud SpringBoot mybatis (五)路由网关(zuul)
  5. MDSF:LOP-使用MPS来做个计算器的示例
  6. Redis中的代理Sharding
  7. 用非递归方式实现二叉树先序便利
  8. Linux学习总结(33)——Linux Java启动关闭bash脚本
  9. centos7当中的systemd及systemctl(节选)
  10. 一篇关于Dataset与泛型、自定义集合的讨论
  11. java sbt二叉树,Treap——堆和二叉树的完美结合,性价比极值的搜索树
  12. CSS3最颠覆性的动画效果,基本属性[过渡和2D]
  13. sitemap.xml文件生成工具
  14. Python入门——爬取pubmed文献做分析
  15. linux下开机自动启动文件夹在哪里设置,Linux设置开机自启动的方法【linux学习教程】...
  16. 留学生如何搞定Extended Essay?
  17. 【HTML】网页开发的一些单词(关键词),新手必备。
  18. 基于Jsp+Servlet的宿舍管理系统(JavaWeb毕业设计源码)
  19. 让假照片原形毕露?今日水印相机上线“照片验真”功能
  20. CMAP1000-05气象数字压力校验系统

热门文章

  1. day 05 字典dic(增删改查 嵌套)
  2. 后缀数组模板 hdu1403
  3. 解决上传窗口弹不出的问题
  4. 【android原生态RPG游戏框架源码】
  5. Git和Github代码管理实践
  6. 【个人笔记】OpenCV4 C++ 快速入门 10课
  7. python网络编程讲解_详解Python Socket网络编程
  8. absolute 必须 relative_想搞BLDC电机控制,就必须要懂的角度传感器
  9. iptables转发基础
  10. Android使用valgrind内存泄漏和越界检测等