shell编程、ssh-root量产、ping-IP脚本操作 问题-flag

2023-05-16

1-su root : Authentication failure问题的解决
su/(su root)命令不能切换root,提示su: Authentication failure;

只要你sudo passwd root过一次之后,下次再su的时候只要输入密码就可以成功登录了;

如下图:

ubuntu系统获取root权限,并且实现xshell root登录

 

1.首先我么用ubuntu账号登陆
2.然后我们输入sudo passwd root 
3.这是我们需要输入两次密码,建议输入的与ubuntu的密码一致(好记)
4.然后我们输入sudo vi /etc/ssh/sshd_config  回车
找到 PermitRootLogin   without-password 修改为
PermitRootLogin   yes
5.ESC    :wq保存退出   然后sudo service ssh restart  重启
6.关闭xshell,然后用root账户登录就可以了, 现在ftp就可以用root账户登录上传和下载文件了

2-ssh或ubuntu无法对同一个IP进行多次访问

情况:量产设备(网口需要出厂的时候都设置为同一个IP),当电脑电脑访问不同的设备都同样的IP时,电脑会自动识别为防攻击操作(禁止进入访问):进入sudo vi /etc/ssh/ssh_config 解开如下注释;对不同设备的同样的IP可以进行访问啦!

同类问题参考(解除防攻击操作):SSH 登录失败:Host key verification failed 的处理方法

3-如何让shell脚本设定为,进入root系统后,可自动再系统内执行shell指令

在本地shell脚本中ssh到远程服务器并执行命令

shell远程执行脚本的目的:便于集中管理
  经常需要远程到其他节点上执行一些shell命令,如果分别ssh到每台主机上再去执行很麻烦,因此能有个集中管理的方式就好了。一下介绍两种shell命令远程执行的方法
前提条件:配置ssh免密码登陆
1-对于简单的命令:
  如果是简单执行几个命令,则:ssh user@remoteNode "cd /home ; ls"
  基本能完成常用的对于远程节点的管理了,几个注意的点:
          (1)双引号,必须有。如果不加双引号,第二个ls命令在本地执行
          (2)分号,两个命令之间用分号隔开
     对于脚本的方式:
       有些远程执行的命令内容较多,单一命令无法完成,考虑脚本方式实现:
2-复杂操作-高级形式
#!/bin/bash
ssh user@remoteNode > /dev/null 2>&1 << eeooff
cd /home
touch abcdefg.txt
exit
eeooff
echo done!

远程执行的内容在“<< eeooff ” 至“ eeooff ”之间,在远程机器上的操作就位于其中,注意的点:

(1)<< eeooff,ssh后直到遇到eeooff这样的内容结束,eeooff可以随便修改成其他形式。
(2)重定向目的在于不显示远程的输出了
(3)在结束前,加exit退出远程节点

4-通过ping命令检测IP地址的shell脚本,代码如下:

#!/bin/sh
#filename ping.sh
#ping ip的脚本
pingcmd()
{
prefix="SERVER $1 PING $2"
ping -w 1 -c 1 $2>/dev/null
ret=$?
if [ $ret -eq 0 ]

then printf "$prefix is up"
else printf "$prefix is down \n"
fi
return 0
}
echo "---begin check host ---"
server0="192.168.1.3"
server1="192.168.1.2"
server2="192.168.1.1"
server3="192.168.1.4"
server4="192.168.1.5"
server5="192.168.1.6"
server6="192.168.1.7"
server7="192.168.1.9"
pingcmd $server0 $server1
pingcmd $server0 $server2
pingcmd $server0 $server3
pingcmd $server0 $server4
pingcmd $server0 $server5
pingcmd $server0 $server6
pingcmd $server0 $server7
echo ""

代码说明:
通过调用shell函数pingcmd,实现ping设置在severX中的IP地址代表的主机。
分析下pingcmd函数的实现:
prefix="SERVER $1 PING $2"    //定义一个字符串,为后面printf输出做准备
ping -w 1 -c 1 $2>/dev/null          //调用ping函数,-w为超时时间;-c为ping的次数;
        ping -w 1 -c 1 $2  :从脚本所在机去ping之后pingcmd函数的第二个参数(本例为之后建立的serve1-7),超时1秒,执行1次
        >/dev/null             :作用是把屏幕的输出从指向到某处,/dev/null是指向空设备,即不需要标准输出。
ret=$?                                      //获取返回值,0为ping成功
if [ $ret -eq 0 ]                          //如果返回值为0,即ping成功
then printf "$prefixt is up"     //则输出一开始定义的字符串(例:SERVER 192.168.1.3 PING 192.168.1.2 OK)
else printf "$prefixt is down" //同上,输出错误信息(此处删除标准输出,之前已定义了输)。
fi

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

shell编程、ssh-root量产、ping-IP脚本操作 问题-flag 的相关文章

  • 在没有 paramiko 的情况下通过 python 运行 ssh 时,“伪终端不会被分配,因为 stdin 不是终端”

    我在 Python 中运行 ssh 而不使用像 Paramiko 这样的外部库 我这样做有我的理由 而不是通过外部库 基本上我正在做subprocess Popen ssh t bla command 执行此操作时我收到以下消息 Pseud
  • Linux shell 根据第二列对文件进行排序?

    我有一个这样的文件 FirstName FamilyName Address PhoneNumber 如何按 FamilyName 排序 如果这是 UNIX sort k 2 file txt 您可以使用多个 k用于对多列进行排序的标志 例
  • Ruby Net:SSH控制大师?

    我目前有一个 Ruby Rails 应用程序 需要建立大量的短 SSH 连接 使用 Ruby Net SSH 库可以正常工作 只是每次我想发出命令时应用程序都必须登录并协商密钥 这太慢了 有没有办法使用 Ruby Net SSH 启用 Co
  • 如何通过ssh获取远程命令的退出代码

    我正在通过 ssh 从远程计算机运行脚本 ssh some cmd my script 现在 我想在本地计算机上存储 shell 脚本的退出状态 我该怎么做 假设没有任何问题ssh其本身 其退出状态是在远程主机上执行的最后一个命令的退出状态
  • system 和 shell_exec 之间的区别

    有什么区别shell exec and systemPHP 中的方法 两者都采用单个命令行参数并在 PHP 中运行 使用其中一种比另一种更好吗 请参阅此处的解释 http chipmunkninja com Program Executio
  • BASH:输入期间按 Ctrl+C 会中断当前终端

    我的 Bash 版本是 GNU bash version 4 3 11 1 release x86 64 pc linux gnu 我有一段这样的代码 while true do echo n Set password read s pas
  • 是否可以让 Capistrano 通过反向 SSH 隧道进行结帐?

    我正在开发一个驻留在公共主机上的应用程序 但我必须将其源代码保存在公司防火墙后面的 Git 存储库中 我越来越very厌倦了通过缓慢的部署scp 复制整个存储库并在每次部署时通过 SSH 传送 并且希望远程主机只需执行git pull更新
  • 退出代码大于 255 — 可能吗?

    如果是 在哪个操作系统 shell 或其他操作系统上 考虑以下 Java 程序 我使用 Java 只是作为示例 任何语言都适合这个问题 这更多地与操作系统有关 public class ExitCode public static void
  • VBA Shell 并等待退出代码

    我正在打包一个办公应用程序 VBA 它调用 C 控制台应用程序来执行应用程序 大型模拟程序 的一些繁重工作 我希望能够让 VBA 应用程序等待控制台应用程序完成并从控制台应用程序检索退出代码 我已经能够做到前者 但尚未能够从应用程序中检索退
  • Bash 中所有匹配的^单词^替换^?

    为了澄清 我正在寻找一种方法来执行global搜索并替换先前使用的命令 word replacement 似乎只替换了第一场比赛 有没有一些set我无法选择的选项 尝试这个 echo oneone oneone gs one two Rep
  • ssh 连接超时

    我无法在 git 中 ssh 到 github bitbucket 或 gitlab 我通常会收到以下错误消息 如何避免它 输出 ssh T email protected cdn cgi l email protection i ssh
  • 如何使用受密码保护的私有 ssh 密钥连接 MySQL Workbench?

    我在使用受密码保护的密钥通过 SSH 连接工作台时遇到问题 我不知道必须将密码密钥放在工作台中的何处 它告诉我 无 拒绝访问 可以继续的身份验证 公钥 我的凭据正确 我可以使用同一用户通过终端 SSH 连接 所以这让我认为这是因为我的 ss
  • GIT 和 Ruby:如何从 ruby​​ 脚本内部取消设置 GIT_DIR 变量?

    我编写了一个非常简单的 部署 脚本作为我的post update挂钩到我的裸 git 存储库中 变量如下 live domain mydomain com staging domain stage mydomain com git repo
  • 如何用awk删除以“C”开头的行?

    如何使用以下命令从文本文件中删除以 C 开头的行awk 有什么建议请 如果数据在文件中data txt then With awk awk C data txt With grep grep v C data txt 显示开头不带 C 的所
  • 并行运行 shell 脚本

    我有一个 shell 脚本 打乱大型文本文件 600 万行和 6 列 根据第一列对文件进行排序 输出 1000 个文件 所以伪代码看起来像这样 file1 sh bin bash for i in seq 1 1000 do Generat
  • Bash - 在与当前终端分开的另一个终端中启动命令的新实例

    我有一个简单的 bash 脚本 test sh 设置如下 bin bash args if args 0 check capture then watch n 1 ls lag home user capture0 watch n 1 ls
  • 在 AIX 中使用 Mailx 通过电子邮件发送 SQLPlus 查询结果的 Shell 脚本

    我有我需要的命令 如果我在提示符下执行这些命令 一切都会按预期进行 SQLPlus 运行查询 将结果导出到文件 然后 Mailx 将该文件通过电子邮件发送给我 sqlplus username pwd instance SPOOL home
  • 如何在 *nix 中登录时运行脚本?

    我知道我曾经知道如何做到这一点 但是 如何在 unix 中登录时运行脚本 bash 可以 From 维基百科 Bash http en wikipedia org wiki Bash 28Unix shell 29 当 Bash 启动时 它
  • 如何登录ec2机器?

    我获得了 EC2 机器的一些登录信息 基本上是 ec2 X X X compute X amazonaws com 加上用户名和密码 如何访问机器 我尝试过 ssh ssh email protected cdn cgi l email p
  • 测试 bash shell 脚本[重复]

    这个问题在这里已经有答案了 有人可以解释一下如何测试 bash shell 脚本吗 例如 我有一个 sh 文件 其中包含此代码 bin sh for file in txt do mv file basename file txt doc

随机推荐