shell访问远程主机方法

22 篇文章 0 订阅

1、传统ssh公私密钥授信,免密登录;

    网上文档一堆,不罗嗦了

2、expect交互登录

  1. #!/bin/expect  
  2. set timeout 30  
  3. spawn ssh -l jikuan.zjk 10.125.25.189  
  4. expect "password:"  
  5. send "zjk123\r"  
  6. interact  
注意:expect跟bash类似,使用时要先登录到expect,所以首行要指定使用expect

在运行脚本时候要expect  file,不能sh file了

上面语句第一句是设定超时时间为30s,spawn是expect的语句,执行命令前都要加这句

expect "password:"这句意思是交互获取是否返回password:关键字,因为在执行ssh时会返回输入password的提示:jikuan.zjk@10.125.25.189's password:

send就是将密码zjk123发送过去

interact代表执行完留在远程控制台,不加这句执行完后返回本地控制台 

3、sshpass带密码登录

sshpass -p user_password ssh user_name@192.168..1.2

    sshpass 参数 SSH命令(ssh,sftp,scp等)。
    参数:
        -p password    //将参数password作为密码。
        -f passwordfile //提取文件passwordfile的第一行作为密码。
        -e        //将环境变量SSHPASS作为密码。

    比如说:
        scp abc@192.168.0.5:/home/xxx/test /root   这个命令的作用是将服务器端文件test传到本地文件夹/root下。
        利用sshpass,假设密码为efghi,则可写作:
        ssh -p efghi scp abc@192.168.0.5:/home/xxx/test /root

另外,对于ssh的第一次登陆,会提示:“Are you sure you want to continue connecting (yes/no)”,这时用sshpass会不好使,可以在ssh命令后面加上 -o StrictHostKeyChecking=no来解决。比如说上面的命令,就可以写作ssh -p efghi scp abc@192.168.0.5:/home/xxx/test /root -o StrictHostKeyChecking=no。


PS1、对于sshpass,不用担心ps会显示密码,ps显示出来的密码全是zzzzzz

PS2、sshpass不能像ssh那样跟<<EOF 执行一系列操作,一般的做法是将需要执行的操作写入本地sh脚本,scp到远程主机,然后以sshpass ...... @host "sh xxx.sh"的方式执行,执行结束再删除sh脚本,如果有日志需要取回的话再scp取回日志。

4、其他:重定向、管道


参考:

https://blog.csdn.net/zhangjikuan/article/details/51105166

http://www.bubuko.com/infodetail-1871760.html

Impala-shell 是一个命令行工具,用于连接到运行 Impala 的集群并与之交互。通过 impala-shell,用户可以执行SQL查询、查看表结构和元数据等。要从远程访问 Impala-shell,你需要确保Impala服务器配置允许远程连接,并且网络设置允许你从客户端机器到Impala服务器的访问。 以下是使用impala-shell进行远程访问的一般步骤: 1. 确保Impala守护进程正在运行,并且Impala的配置文件(通常是`impala.conf`)已经设置了允许远程连接的选项。例如,确保`ListenerBindAddress`配置项没有设置为`localhost`或`127.0.0.1`。 2. 确定Impala服务的主机名或IP地址以及端口号(默认端口是21050)。这将用于在客户端机器上连接到Impala服务器。 3. 在客户端机器上打开命令行界面,输入`impala-shell`命令后跟上服务器的主机名和端口号,如:`impala-shell -i <hostname/IP> -p <port>` 4. 如果需要进行安全连接(如使用Kerberos认证),还可能需要提供额外的参数,如`--kerberos_service_name`来指定服务名称,以及使用`-l`或`--use_local_proxy`来指定代理。 5. 输入上述命令后,你将被提示输入认证所需的凭据(如Kerberos ticket或密码)以连接到Impala服务。 请注意,远程访问Impala时,网络安全是非常重要的考虑因素,因为可能涉及到敏感数据的传输。务必确保使用了适当的安全措施,比如加密连接(SSL)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值