linux远程切换oracle用户,能否用ssh登录一台机器并自动su到另一个用户?

用expect可以实现(需要安装,如果你的本地机器没有的话)

我之前用的脚本,你可以修改一下以适应自己的需求(比如要不要密码之类的)

copy以下脚本并保存为sshlogin.expect,然后按照usage的示例调用或创建alias。

#!/usr/bin/expect

#Usage: sshlogin.expect         

# set Variables

set ipaddr [lrange $argv 0 0]

set ssh_user [lrange $argv 1 1]

set ssh_pwd [lrange $argv 2 2]

set su_user [lrange $argv 3 3]

set su_pwd [lrange $argv 4 4]

# set timeout to 60 seconds to avoid any timeout issues if the login prompt takes time to come.

set timeout 60

#

# connect to remote server with given acc

#

spawn ssh $ssh_user@$ipaddr

# provide the ssh_user's pwd

expect "*?assword:*" { send "$ssh_pwd\r" }

#

# after connected, switch to su account

#

# after recv msg like "Last login: Thu Aug 27 17:53:03 2015 from 127.0.0.1", it's time to send "su"

expect "*?ogin:*" { send "$su_user\r" }

# after recv prompt of "*assword:", we should send su_pwd and press enter

expect "*?assword:*" { send "$su_pwd\r" }

interact

【 在 sedelick (sedelick) 的大作中提到: 】

: 每次都要ssh到一台机器然后手动su到另外一个用户并输入密码。

: 例如ssh myself@192.168.1.201 然后su oracle并输入口令

: 能否alias一个命令,ssh到另一台机器之后,自动切换并输入密码? 我知道ssh可以远程登录并执行一个命令,但是执行完命令以后立刻就退出了,这不是我的需求。

: ...................

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值