HOME 首页
SERVICE 服务产品
XINMEITI 新媒体代运营
CASE 服务案例
NEWS 热点资讯
ABOUT 关于我们
CONTACT 联系我们
创意岭
让品牌有温度、有情感
专注品牌策划15年

    shell脚本实现ssh登录(shell脚本ssh登录服务器)

    发布时间:2023-03-14 03:33:43     稿源: 创意岭    阅读: 110        问大家

    大家好!今天让创意岭的小编来大家介绍下关于shell脚本实现ssh登录的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。

    ChatGPT国内免费在线使用,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等

    只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端

    官网:https://ai.de1919.com

    本文目录:

    shell脚本实现ssh登录(shell脚本ssh登录服务器)

    一、【shell】CentOS7.x上sshpass的安装使用

    OpenSSH 自带的 ssh 客户端程序(也就是 ssh命令)默认不允许你以非交互的方式传递密码。

    很多时候我们在确定安全的情况下,对ssh的交互登录"深恶痛绝",所以就需要进行免密登录。

    ssh登陆不能在命令行中指定密码,sshpass的出现,解决了这一问题。

    sshpass用于非交互SSH的密码验证,一般用在sh脚本中,无须再次输入密码(本机known_hosts文件中有的主机才能生效)。它允许你用 -p 参数指定明文密码,然后直接登录远程服务器,它支持密码从命令行、文件、环境变量中读取。

    ssh命令, 没有指定密码的参数. 以至于在脚本中使用ssh命令的时候, 必须手动输入密码, 才能继续执行. 这样使得脚本的自动化执行变得很差, 尤其当ssh对应的机器数很多的时候, 会令人抓狂.使用非交互式样有两种方式: 一种借助expect脚本, 一种借助sshpass来实现。

    # wget https://nchc.dl.sourceforge.net/project/sshpass/sshpass/1.06/sshpass-1.06.tar.gz

    # tar  zxf sshpass-1.06.tar.gz

    # cd sshpass-1.06

    # ./configure  --prefix=/usr/local/

    # make && make install

    # yum -y install sshpass

    # yum info sshpass

    注:如果用rpm的方式安装ansible,sshpass是作为依赖安装的。

    # sshpass -h

    # sshpass -p "123456" ssh   -o 'StrictHostKeyChecking=no'    root@192.168.1.100

    # sshpass -p "123456" ssh  -o 'StrictHostKeyChecking=no'    root@192.168.1.100   -v

    注:第一次登陆务必加上   -o 'StrictHostKeyChecking=no'   选项,或者保险起见,每次加上

    non-interactive ssh password auth

    https://nchc.dl.sourceforge.net/project/sshpass/sshpass/1.06/sshpass-1.06.tar.gz

    sshpass 用法举例

    https://www.cnblogs.com/nf01/articles/10756100.html

    Linux ssh命令详解

    https://www.cnblogs.com/ftl1012/p/ssh.html

    sshpass的使用方法

    https://www.cnblogs.com/misswangxing/p/10637718.html

    用expect做服务器的批量互信

    https://www.jianshu.com/p/632e7efb59f5

    二、Linux。。shell 脚本中经常要用到ssh。可是ssh又要交互式输密码。怎么能不交互的输密码呢?

    1、登录A机器

    2、ssh-keygen -t [rsa|dsa],将会在~/.ssh下生成密钥文件和私钥文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub

    3、将 .pub 文件复制到B机器的 .ssh 目录, 并 cat id_dsa.pub >> ~/.ssh/authorized_keys

    4、大功告成,从A机器登录B机器的目标账户,不再需要密码了(直接运行 #ssh 192.168.1.100 )

    面交互输入,就得使用expect脚本,例:

    #!/bin/bash

    passwd='123456'

    /usr/bin/expect <<-EOF

    set time 30

    spawn ssh root@192.168.1.100

    expect {

    "*yes/no" { send "yes\r"; exp_continue }

    "*password:" { send "$passwd\r" }

    }

    expect "*#"

    send "cd /home/trunk\r"

    expect "*#"

    send "ls\r"

    expect "*#"

    send "exit\r"

    interact

    expect eof

    EOF

    三、怎么在一个shell脚本中执行远程主机的另一个shell脚本?? ssh已经可以无密码登录了。

    假设你要操作的是远程服务器

    IP为:1.1.1.1

    操作的脚本是 :/home/a.sh

    操作命令为

    ssh 1.1.1.1 “/bin/bash /home/a.sh”

    四、如何使用shell脚本修改linux的登陆密码

    编写mssh.sh脚本

    内容如下

    1.

    #!/usr/bin/expect

    -f

    2.

    #auto

    ssh

    login

    3.

    set

    timeout

    30

    4.

    set

    sshhost

    [lindex

    $argv

    0]

    5.

    spawn

    ssh

    -llizongbo

    -p13800

    $sshhost

    6.

    expect

    “password:”

    7.

    send

    “lizongbo_618119\r”

    8.

    interact

    给文件加上可执行权限

    chmod

    +x

    ./mssh.sh

    如果文件默认有其它权限,建议最好设置为只能自己读取,修改和执行

    chmod

    700

    ./mssh.sh

    测试成功:

    ./mssh.sh

    618119.com

    直接登录到了

    618119.com

    以上就是关于shell脚本实现ssh登录相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。


    推荐阅读:

    Sheisacat翻译(she is tall翻译)

    washingup什么意思

    English趣味记忆法(teacher趣味记忆法)

    景观设计方案内容(景观设计方案内容怎么写)

    校园景观存在的问题(校园景观存在的问题及改造建议ppt)