首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用bash脚本自动使用ssh进入服务器并使用su命令输入密码?

使用bash脚本自动使用ssh进入服务器并使用su命令输入密码的方法如下:

  1. 首先,确保你已经安装了OpenSSH客户端和服务器,并且已经在服务器上设置了SSH登录和su命令的权限。
  2. 创建一个新的bash脚本文件,比如auto_ssh_su.sh,并使用文本编辑器打开它。
  3. 在脚本文件中,首先使用ssh命令连接到目标服务器。命令格式如下:
  4. 在脚本文件中,首先使用ssh命令连接到目标服务器。命令格式如下:
  5. 其中,username是你的服务器用户名,server_ip是服务器的IP地址或域名。
  6. 接下来,使用expect命令来自动输入密码。expect是一个用于自动化交互的工具,可以模拟人工输入。确保你已经安装了expect工具。
  7. 在脚本文件中添加以下代码:
  8. 在脚本文件中添加以下代码:
  9. your_password替换为你的服务器密码。
  10. 最后,使用su命令切换到目标用户。在脚本文件中添加以下代码:
  11. 最后,使用su命令切换到目标用户。在脚本文件中添加以下代码:
  12. target_user替换为你要切换到的目标用户。
  13. 完整的脚本文件内容如下:
  14. 完整的脚本文件内容如下:
  15. 保存并关闭脚本文件。
  16. 授予脚本文件执行权限:
  17. 授予脚本文件执行权限:
  18. 现在,你可以运行脚本文件来自动连接到服务器并使用su命令输入密码:
  19. 现在,你可以运行脚本文件来自动连接到服务器并使用su命令输入密码:
  20. 脚本将自动连接到服务器,并在提示输入密码时自动输入密码。然后,它将切换到目标用户。

请注意,这只是一个简单的示例脚本,你可能需要根据你的实际情况进行修改和调整。另外,为了安全起见,建议在使用脚本时使用SSH密钥认证而不是密码认证。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何Bash脚本使用expect来为SSH命令提供密码

问题 我正尝试在 Bash 脚本使用 Expect 来提供 SSH 密码密码输入这部分工作正常,但我并没有像预期那样进入 SSH 会话,而是直接回到了 Bash 环境中。 我的脚本如下: #!...会话后,再返回到我的 Bash 脚本继续执行。...我之所以先使用 Bash 脚本再调用 Expect,是因为我需要通过一个菜单来选择要连接的单元 / 设备。 回答 混合使用 Bash 和 Expect 可能不是达到期望效果的最佳方式。...-ptest1324 ssh user@192.168.1.200 ls -l /tmp 上面的命令可以很容易地与 Bash 脚本集成。...虽然 sshpass 有可能覆盖这些参数,但在它启动并能够执行覆盖之前,存在一个时间段,此时密码可被任何进程查看,这是极大的安全隐患。强烈建议不要将这种形式的脚本用在生产环境上。

12510

如何Bash Shell脚本使用`exec`命令

本文将详细介绍如何Bash Shell脚本使用exec命令,并提供一些常见的用例和示例。...通过使用 exec 命令结合输入输出重定向符号,您可以更改脚本命令输入来源和输出目标。以下是一些示例,展示了如何脚本使用 exec 命令进行输入输出重定向:重定向标准输入:#!...接下来,脚本使用循环读取了文件中的内容,输出每行的内容。最后,使用 exec 命令恢复了原始的标准输入(exec 0<&3 3<&-)。重定向标准输出:#!...标准输入、输出和错误输出分别使用文件描述符0、1和2。总结exec 命令Bash Shell脚本中的使用提供了灵活的功能。...本文介绍了在Bash Shell脚本使用 exec 命令的基本语法和用法,并提供了几个常见的使用场景和示例。使用 exec 命令可以帮助您管理进程、切换解释器、重定向输入输出等。

3.2K50
  • 使用SSH连接远程主机执行多个Bash命令最优雅的方法是什么

    问题 我已经设置好了ssh代理,我可以用Bash脚本在外部服务器上运行命令,执行以下操作: ssh blah_server "ls; pwd;" 现在,我真正想做的是在外部服务器上运行许多长命令。...将所有这些命令都放在引号之间看起来会很不美观,而且我确实不想为了避开这个问题而多次使用SSH连接。 那么,有没有一种方法可以让我一次性完成这个操作,比如用括号或其他方式来包含所有的命令?...回答 使用 Here-Document: ssh user@remote_host << EOF 命令1 命令2 命令3 EOF 不过这样执行会有一个问题: 输出信息的开头都有一句提示 "Pseudo-terminal...如果要避免这个提示信息,可以将上述命令的第一行改为 ssh user@remote_host /usr/bin/bash << EOF 朋友们可以拿手上的测试环境试一试。...参考 stackoverflow question 4412238 man ssh

    10110

    【打包构建】Mac下使用expect实现执行sudo命令自动输入密码

    而Jenkins在执行自动化操作的时候,我们是无法在构建任务中手动输入密码的,只有实现了自动输入sudo密码才能让整个构建任务继续执行下去,要不然就会无限期地卡在等待输入密码这一步。   ...在网上看到过利用管道实现sudo命令自动输入密码的方法,我在Mac上试了,并不奏效,估计只能在Linux上运行,代码如下: echo "password" | sudo -S commander   ...二、利用expect实现执行sudo命令自动输入密码   expect是Mac下的一个软件包,利用它可以很方便地在自动化流程中实现一些需要交互性的操作,我们直接通过brew就可以很方便地安装它: brew...install expect   然后我们就可以开始编写自动脚本了,比如我想在Jenkins构建结束以后,执行sudo rm -rf ....shell脚本来执行了,如果你在终端下尝试执行 sh autorm.sh会报错,得用 expect命令来执行这个特殊的脚本:expect autorm.sh。

    2.9K20

    配置ssh免密登陆,使用命令行与服务器交互

    协议的使用 我们通常连接到服务器使用的是ssh协议,无论使用的是什么软件,其实底层的协议以及命令是一样的.通常在我们连接服务器时需要做哪些事呢?...,但是今天我们使用最基本的也是最底层的当然也是最方便快捷的方式,并且基于我们上次搭建的命令行的环境, 开始连接配置免密登陆 打开我们的cmder 使用命令 ssh name@server_ip...,name为服务器的用户名,后面是服务器的地址,回车之后会让你输入服务器密码,输入密码就可以进行和服务器进行交互了 ?...进入服务器的 .ssh文件夹在,新增文件 authorized_keys 将我们复制的公钥复制进去,但是要以行的形式,如果多条公钥记得要换行,可以使用刚刚学习的cmder里进行操作 1 2 3...然后我们就可以使用命令 ssh name@ip 直接进行登录了 ? ​ 5.

    81131

    将Hexo部署到云服务器

    创建用户配置其仓库 // 创建用户 useradd git // 设置密码 passwd git // 切换用户 su git // 进入git用户的家目录 cd /home/git/ // 项目存在的真实目录...测试能否将其clone 在你的电脑上随便找个位置新建一个文件夹,并且将bash或者其他命令行工具切换到这里。开始执行以下命令(注意替换成你的服务器ip),测试能否将仓库clone下来。...好吧,我居然没有这个ssh-copy-id命令,不过无妨,既然不能使用命令,那么我就手动。如果你上面的两个命令没有问题,那么可以跳过我手动建立信任关系的过程。...手动设置: 依次执行以下命令 // 切换到git用户 su git //进入家目录,如果没有.ssh目录,那么需要创建。...从而只能用 git clone,git push 等登录 在服务器输入以下命令: // 如果不是root用户请切换至root用户 su root // 查看 git-shell 是否在登录方式里面 cat

    10K103

    【教程】Ubuntu自动查看有哪些用户名与密码相同的账户,统一修改密码

    对于自动撤销sudo权限可以看这个:【技巧】Ubuntu临时授予用户sudo权限,并在一定时间后自动撤销 开始操作         在你要执行脚本服务器上先安装库: sudo apt install...登录到服务器使用 sshpass 添加 fail2ban 白名单, 使用 -S 选项使 sudo 从标准输入读取密码使用 echo $SSHPASS 来提供该密码 echo "登录$SSH_HOST.../dev/null -p $SSH_PORT $USER@$SSH_HOST "sudo -S fail2ban-client unban $MY_IP" # 登录到服务器使用 sshpass 启动...fail2ban 服务,使用 -S 选项使 sudo 从标准输入读取密码使用 echo $SSHPASS 来提供该密码 echo "登录$SSH_HOST移除fail2ban白名单" sshpass.../bin/bash # 之前的脚本中记录用户名的文件 OUTPUT_FILE="/path/to/your/output/file" # 使用 SSH 连接到远程服务器 echo $SSHPASS

    30930

    第七章·Linux用户管理-用户的基本操作

    那么在学习如何切换用户之前,我们先来了解下用户工作环境。 如何在普通用户的情况下,完成日常工作? 1)su 切换用户,使用普通用户登录,然后使用su命令切换到root。...自动退出 登陆shell //需要输入用户名和密码才能进入shell su - zls 非登陆shell //不需要输入用户和密码就能进入,比如执行sh, bash, su username...~]$ //可以使用whoami查看当前登录用户 [zls@zls ~]$ whoami zls 6.切换用户,使用命令su [-] username su命令后面跟-代表进入登陆式shell 如果...下面介绍一个很实用的案例,我们的需求是将Linux服务器设置成如下: 1.仅允许使用普通账户登陆Linux服务器,禁止root直接登录 2.可以让普通用户不输入密码就能sudo su -切换到root...,zls Cmnd_Alias SU = /bin/su USER_SU ALL=(ALL) NOPASSWD:SU //使用root登陆服务器失败 ➜ ~ ssh root@192.168.56.11

    2.2K30

    Linux下常见的权限维持方式

    备注:bash2针对suid做了一些防护措施,需要使用-p参数来获取一个root shell。另外,普通用户执行这个SUID shell时,一定要使用全路径。...进入/root/.ssh/文件夹,查看文件夹的内容,如下所示: ? 其中 id_rsa为私钥,id_rsa.pub为公钥,接下来打开id_rsa.pub,将内容复制到服务器。...在目标服务器上执行一句话后门: ln -sf /usr/sbin/sshd /tmp/su;/tmp/su -oPort=8888 执行完之后,任何一台机器ssh root@IP -p 8888,输入任意密码...6、strace后门 通过命令替换动态跟踪系统调用和数据,可以用来记录用户sshsu、sudo的操作。...排查技巧:使用alias即可发现异常。 ? 7、crontab反弹shell crontab命令用于设置周期性被执行的指令。新建shell脚本,利用脚本进行反弹。

    2.5K20

    使用腾讯云配置小程序Python开发环境

    新建用户 首先确认使用的是 root 用户登录如果不是使用以下命令切换 sudo su 使用 adduser 命令创建用户 adduser username # username替换为你自己的用户名 接下来的步骤会让你输入密码和个人信息...文件中符合规则的用户能切换root身份) sudo su /etc/init.d/ssh start 使用密钥登录 服务器端生成密钥对: cd /home/gs # 打开新建的用户目录 mkdir .ssh...ssh name@host # name 是机器的用户名 host 是机器的地址 关闭ssh密码登录 确认可以通过私钥进行登录后,关闭ssh密码登录。...可以执行以下命令直接安装: curl -s https://getcaddy.com | bash 在安装过程中,脚本使用sudo获取管理权限,以便将Caddy文件放在系统范围的目录中,因此可能会提示您输入密码...curl命令的附加-o参数会将该文件保存在/etc/systemd/system/目录中,使其对systemd可见。

    7.3K21

    Linux登陆的两种状态

    登录脚本的执行顺序:【注:仅适用于 bash shell】 Login-Shell 是指登录时,需要提供用户名密码的shell,如:su – user1 , 图形登录, ctrl+alt+F2-6.../etc/profile.d/目录下的脚本 3. ~/.bash_profile 【搜索命令的路径 ——————- 登录级别 环境变量配置文件 】 4. ~/.bashrc 【存储用户设定的别名和函数...非登录shell指的是,不需要输入用户名密码的shell,如图形下 右键terminal,或ctrl+shift+T打开的shell 这种Non-Login shell 执行登录脚本的顺序: 1..../etc/profile.d/目录下的脚本 例如使用ssh远程登陆一台机器: ssh 目标机器 登陆之后,执行某个命令 属于 Login-Shell,会自动读取/etc/profile文件中定义的所有变量...例如使用ssh远程登陆一台机器的同时使用命令ssh 目标机器 命令 属于Non-Login-shell 不会读取/etc/profile文件,如果登陆的同时使用命令需要用到这个文件里的变量则会出现

    1.5K20

    online 2o 3o 4o 如何安装杰大脚本

    root, su 然后输入以下命令安装sudo apt-get install sudo -y 安装完之后,输入以下命令,再次进入root sudo -i 之后输入以下命令,来进行DD系统 bash <...) 之后命令会运行,运行完之后,会断开SSH,然后我们等15-20分钟,就可以再次进入SSH。...DD好debian 10系统之后,在输入以下命令,安装 wget和curl apt-get install wget curl -y 2、配置ipv6 我们进入ssh输入ip addr看看是否有ipv6...,下面要用,分别是ipv6地址、DUID、S... 3、安装杰大脚本 我们输入以下命令,可以安装杰大脚本 bash <(wget -qO- https://raw.githubusercontent.com...安装好之后,会出现一个弹窗,我们选择第二个就可以,如图,图片勾选错误 最后配置好的结果是这样的,如图 然后,我们reboot重启下服务器,会自动安装bbr,然后配置就结束了

    73320

    如何编写一个自动关闭某个进程的脚本使用cron定时执行?

    例如,某些程序可能会因为各种原因导致内存泄漏或者占用过多的CPU资源,从而影响服务器的性能。为了避免这种情况的发生,我们可以编写一个自动关闭某个进程的脚本。...本文将介绍如何编写一个自动关闭某个进程的脚本使用cron定时执行。在本文中,我们将以关闭Java进程为例进行讲解。编写关闭进程脚本首先,我们需要编写一个用于关闭进程的脚本。...我们可以使用kill命令来关闭指定进程。为了实现自动化,我们需要知道进程的PID(进程ID)。我们可以使用pgrep命令来查找进程的PID。下面是一个简单的关闭Java进程的脚本:#!...fi以上脚本中,首先使用pgrep命令查找Java进程的PID,如果没有找到,则输出提示信息;否则,使用kill命令关闭Java进程,输出成功信息。...总结在本文中,我们介绍了如何编写一个自动关闭某个进程的脚本使用cron定时执行。这种方法可以帮助我们避免由于进程占用过多资源导致服务器性能下降的情况发生。

    1.5K40

    三十.Vulnhub靶机渗透之bulldog信息收集和nc反弹shell(3)

    --- 第二步,端口扫描 nmap命令的基本用法如下: -sS:半开扫描,记入系统日志风险小 -sP:扫描端口前,先使用ping扫描,保证主机存活 -A:全面系统检测,启用脚本检测和扫描 输入命令如下:...nc -lvp 4444 接着尝试bash反弹,在靶机打开的网页命令框中输入命令,但结果提示错误。...","-i"]) 如果服务器搭建在/var/www/html文件时,需要把脚本写到/var/www/html。...,输入刚才记下来的密码,成功从django权限提升到root权限,最终成功获得root权限拿到flag。...sudo su - 密码:SUPERultimatePASSWORDyouCANTget 输入ls命令,发现里面只有一个文本文档,再输入 cat congrats.txt 查看文件,最后读取flag文件

    1.2K20

    ASP.NET Core + Jenkins实现自动化发布

    一、安装Jenkins 这里服务器是Linux CentOS 7 ,使用SSH 登录云服务器后,输入以下命令安装jenkins. sudo wget -O /etc/yum.repos.d/jenkins.repo...sudo usermod -s /bin/bash jenkins 切换到jenkins用户 sudo su - jenkins 在服务器输入以下命令创建身份验证凭据私钥,-C 后面的参数可以是任意内容..., cat ~/.ssh/id_ed25519.pub gitee上添加公钥后,在服务器上执行以下命令 ssh -T git@gitee.com 通过执行以下命令读取ssh身份验证私钥内容,输入到...在jenkins 服务器上执行以下命令,创建ssh 身份认证秘钥,并将公钥复制到应用服务器上,以便在编译成功后,直接复制dll到应用服务器上,而无需输入应用服务的登录密码,需要注意的是,创建秘钥前,先切换到...) ssh-copy-id -i ~/.ssh/id_rsa.pub root@115.159.114.65 -p 1200 以上两个命令执行成功后,可以创建一个文本文件进行测试,看下是否能无需输入密码就可以复制文件到应用服务器

    22010

    Hexo博客部署腾讯云服务器

    # 环境准备 # 安装 Git 打开服务器控制面板,修改 root 密码一定需要修改!,选择登录。 笔者这里选择的是使用 FinalShell 远程连接。...切换至 git 用户,创建 ~/.ssh 文件夹和 ~/.ssh/authorized_keys 文件,赋予相应的权限 su git mkdir ~/.ssh vim ~/.ssh/authorized_keys...接着,输入一下命令,赋予权限 chmod 600 /home/git/.ssh/authorized_keys chmod 700 /home/git/.ssh 在本地 Git 终端中测试是否能免密登录...在电脑本地桌面,右键”Git Bash Here”,输入一下命令,其中 SERVER 填写自己的云主机 ip,执行输入 yes 后不用密码说明配置成功了。...ssh -v git@SERVER 说明已经连接成功了 # 配置仓库与相关配置 返回服务端命令行切换到 root 账户 sudo su root 然后输入,赋予权限 mkdir /var/repo

    44011

    Linux权限维持入门学习

    使用命令: find /etc/pam.d|xargs grep "pam_rootok" image.png 在反弹shell的机器上输入以上命令: ln -sf /usr/sbin/sshd.../tmp/su; /tmp/su -oPort=6666; image.png image.png 此时使用端口扫描工具看下: image.png 6666端口是开启的,那如何连接呢?...=/dev/null -T user@x.x.x.x /bin/bash -if 如果已知密码的情况下可以使用这个方法登录,比如使用攻击机去登录靶机: ssh -T bolean@10.50.0.16...在这里使用crontab -l了的命令是能看到此时的任务计划的,此时已经收到了shell: image.png 2.4.2 文件反弹 先建立一个sh文件,对该文件赋予可执行权限: bash脚本:hello.sh...这里主要是记录该用户的键盘操作,并无法记录登录靶机的ssh密码信息。 2.5.1 记录ssh的操作。 通过命令替换动态跟踪系统调用和数据,可以用来记录用户sshsu、sudo的操作。

    43960

    腾讯云 Linux 服务器安装宝塔面板

    操作步骤 步骤一:登录实例 登录 Linux 实例,推荐使用控制台提供的登录按钮一键登录,也可根据个人的操作习惯使用远程软件或 ssh登录。...执行sudo su切换root用户 步骤三:安装面板 将以下命令复制到终端执行,下载安装宝塔面板 url=https://download.bt.cn/install/install_lts.sh;if...输入y回车确认安装,等待脚本自动执行即可,返回以下结果,则代表安装成功 记录返回结果中的外网面板地址、username、password,以备后续使用: 步骤四:放通端口 按照提示(如下图所示)在安全组或防火墙放通指定的端口...轻量应用服务器放通防火墙端口:放通实例防火墙 云服务器放通安全组:添加安全组规则 图片 步骤五:登陆面板 在本地计算机中,打开浏览器,输入记录的“外网面板地址”参数值,访问进入宝塔面板页面 例如:https...密码登录 登陆后阅读用户协议 步骤六:绑定账号 登录绑定宝塔账号,如您首次使用宝塔,请先点击注册账号前往宝塔官网完成注册后登录。

    47230

    Hexo博客的部署和使用

    2 安装宝塔 使用宝塔官方提供的安装脚本快速安装 yum install -y wget && wget -O install.sh https://download.bt.cn/install/install...分别执行node -v和npm -v来检查是否被正确安装或是否可用 3 配置SSH密钥 在本地终端执行生成公钥密钥命令,按照提示回车或者输入y确认 ssh-keygen 输出类似下图信息则表明完成 生成的文件位置在...:wq保存退出Vim 改回sudoers文件权限 chmod 400 /etc/sudoers 设置 git 账户密码 sudo passwd git 密码输入是看不到的 SSH连接 切换至 git...用户,创建 ~/.ssh 文件夹和 ~/.ssh/authorized_keys 文件 # 切换git用户 su git # 创建.ssh文件夹 mkdir ~/.ssh # 创建编辑authorized_keys.../.ssh 测试连接 在本地桌面右键”Git Bash Here”或者CMD命令行,输入以下命令,执行输入yes后无报错说明配置成功了 ssh -v git@服务器ip地址或域名 如果连接出现Permission

    14410
    领券