shell脚本ssh读取端口和IP(shell脚本读写串口)

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

在实际运用中在当前服务器执行命令后,需要在另一台服务器继续执行某些命令,分开去到另一台服务器执行也是比较麻烦的,因此整理下集中执行的方式

1、首先配置ssh免密操作

Linux 下实现SSH互信:

2、简单命令

ssh root@192.168.1.1 "cd /var/lib; ls; cd "

2.1 使用时注意,双引号必须有。若没加双引号,第二条及之后的命令会在本地执行

2.2 分号是将两条语句间隔开

2.3 单双引的区别:单引号不会解析值,是什么就传什么;双引号会解析值,将解析结果传过去

3、多条命令

? ? ?ssh root@192.168.1.1 reallssh

? ? ? cd /var/lib/test

? ? ? tar -zxvf api.com.tar.gz

? ? ? ......

? ? ? exit

? ? ? reallssh

3.1 命令写在 ?reallssh(开始) 至 reallssh(结束) 之间

3.2?reallssh可自己定义为其他形式

3.3 在结束前加上exit退出远程

4、可能遇到的问题

问题:远程登录主机时出现Pseudo-terminal will not be allocated because stdin is not a terminal. 错误

解决方案:字面意思是伪终端将无法分配,因为标准输入不是终端。

所以需要增加-t -t参数来强制伪终端分配,即使标准输入不是终端。

to force pseudo-tty allocation even if stdin isn’t a terminal.

参考样例如下:

ssh -t -t?user1@192.168.1.1 -p 22

--------------------------------------------------------------------------------

参考:

那个xshell 怎么设置ssh 访问10822 端口

如图,在端口号那一栏改为10822 ,前面的主机那一栏记得改为你自己要连接的那台机器的IP

如何用shell脚本实现SSH的远程登录

要带跳过输入密码的环节么?

如果你想每次链接的时候自己手动输入密码,那就参考这样写

#!/bin/bash

ip=$1

ssh 用户名@ip地址 -p端口号

保存后给执行权限,运行时在脚本后面直接跟一个IP地址

如果你想每次链接的时候自动跳过输入密码的环境,那就再百度下“ssh建立信任关系”,脚本依然还是这个脚本,只是登陆的时候做了互相信任的话,就不需要密码了

在LINUX系统下,如何使用SHell脚本,SSH登陆上路由器?

1.登陆linux系统,打开终端命令。输入 rpm -qa |grep ssh 查找当前系统是否已经安装

2.如果没有安装SSH软件包,可以通过yum 或rpm安装包进行安装

3、安装好了之后,就开启ssh服务。Ssh服务一般叫做 SSHD

4、命令行输入 service sshd start 可以启动 或者使用 /etc/init.d/sshd start

5、输入:ssh 账号@IP地址即可。

比如:ssh oracle@192.168.10.13

然后按照提示输入密码. 一切无误则进入该远程主机.

首先你用ssh-keygen生成公钥/私钥对,拷贝到路由器上。这样就可以免密码登录。

然后你写个脚本,用here文档来登录路由器,并进行操作。

ssh 用户名@IP SSH

#这里写你需要的操作

SSH

shell脚本通过ssh登录到服务器进行操作

呵呵,这个问题有意思。 仔细想想,是本地环境和服务器环境的区别。你的脚本是存放在本地的,当你执行第一句的时候,已经转化为服务器的一个中断,享用的是服务器的环境。是看不到你本地的脚本的。

18人参与, 0条评论 登录后显示评论回复

你需要登录后才能评论 登录/ 注册