Linux 实现远程ssh服务节点操作

这篇博客介绍了如何通过Shell脚本自动化地在多个服务节点上执行命令,特别是安装Python服务所需的jar包。脚本`catscp_servicelib.sh`读取`other_nodes`文件中的节点列表,然后逐个节点执行`pip install`命令,利用阿里云镜像加速依赖安装。尽管过程中可能出现conda命令找不到的提示,但不影响实际命令的执行。

背景:当我们拥有集群时,需要操作每台服务节点,用到shell脚本自动化去执行某些命令是程序员的第一选择。简单、快捷、方便。

  • shell脚本实现,实现去每一台节点去安装python服务依赖的jar包。

 cat scp_servicelib.sh
#!/bin/bash


nodes=$(cat ./other_nodes)
        for node in $nodes
        do
                echo $node ":"
                ssh username@$node "cd /data/service ; pip install -r requirement.txt  -i https://mirrors.aliyun.com/pypi/simple/"
        done
exit 0

===============================

cat other_nodes
#服务节点

值得注意的是,当出现cd /../.bashrc:行105: conda: 未找到命令,无需关注,命令其实已经执行了,可以到对应的节点去查看。

### 配置并使用SSH实现远程连接 #### 安装OpenSSH服务器和客户端 为了能够在Linux系统中通过SSH协议进行远程连接,需要安装OpenSSH软件包。对于大多数现代Linux发行版,默认情况下已经预装了这些工具。 如果未安装,则可以通过系统的包管理器来完成安装操作。例如,在基于Debian/Ubuntu的系统上可以执行如下命令: ```bash sudo apt update && sudo apt install openssh-server openssh-client ``` 在Red Hat/CentOS/Fedora等RPM-based Linux版本下则应运行: ```bash sudo yum install openssh-server openssh-clients ``` 这会确保机器具备作为SSH服务端以及发起SSH请求的能力[^1]。 #### 启动与启用SSH服务 一旦完成了上述步骤中的安装过程之后, 接下来要做的就是启动`sshd`(即SSH守护进程),并且将其设置成开机自启模式以便于长期稳定工作。同样地,针对不同类型的Linux操作系统有不同的指令集用于控制服务状态: - 对于采用Systemd初始化系统的平台(如较新的Ubuntu、CentOS7+): ```bash sudo systemctl start sshd.service sudo systemctl enable sshd.service ``` - 而对于那些仍然依赖Init脚本的老款Linux变种来说(比如某些旧版本的Debian),应当采取下面的方式来进行相应处理: ```bash sudo service ssh start sudo chkconfig --level 35 ssh on ``` 此时,本地计算机上的SSH Server就已经处于激活状态,并准备好接受来自其他设备的安全shell访问请求了[^2]。 #### 修改防火墙规则允许SSH流量进入 为了让外部网络能够成功抵达目标主机并通过指定端口建立安全通道,还需要调整相应的防火墙策略以开放默认使用的TCP 22号端口给外界可见范围内的IP地址访问权限。具体做法取决于所处环境下的实际防护机制类型;这里给出两种常见情形的操作指南: - 如果是利用UFW(Uncomplicated Firewall)来做边界保护的话,那么只需简单输入下列语句即可达成目的: ```bash sudo ufw allow 22/tcp ``` - 当面对iptables这类更为复杂的框架结构时,则建议按照官方文档指导编写恰当的ACL列表条目,或者直接应用现成模板文件简化配置流程: ```bash sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT ``` 以上措施能有效保障合法用户的正常登录活动不受阻碍的同时也防止恶意入侵企图得逞[^3]。 #### 创建或确认用户账户存在 考虑到安全性因素的影响,通常不会推荐root超级管理员身份直接暴露在外网之下供他人随意调用。因此最好提前创建好普通权限级别的新账号专门用来日常运维作业之需。假设现在想要新建一个名为exampleuser的新成员加入到系统当中去,可依照以下方式快速搞定这件事儿: ```bash sudo adduser exampleuser ``` 紧接着为其设定初始密码,保证后续验证环节顺利过关: ```bash sudo passwd exampleuser ``` 当然也可以选择重命名现有非特权级角色名或是赋予已有的某个特定人员额外授权使其满足条件要求[^4]。 #### 远程连接测试 最后一步便是尝试从另一台支持SSH Client功能的工作站上面发出探测信号看看能否无障碍连通至刚才精心布置好的远端节点上了。打开终端窗口后键入类似这样的字符串组合就能马上得到答案啦! ```bash ssh username@remote_host_ip_address ``` 其中username代表之前定义过的那个一般性质的身份标签而remote_host_ip_address则是指代被访对象的真实物理位置编码信息。初次握手期间可能会弹出提示框询问是否继续信任该公钥指纹记录,请放心点击同意选项继续前进吧!如果一切正常的话很快就会看到熟悉的欢迎界面出现在眼前咯~[^5]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值