ssh 无密码连接问题

ssh 无密码连接问题

从另一台服务器获取输出时遇到问题。可以使用无密码连接。

假设当我执行df -kh下面的操作时,它正在工作(执行 ssh 并从另一台服务器获取 o/p)

[user1@meylvmacs01 ~]$ssh [email protected]  df -kh

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              99G   11G   83G  12% /
tmpfs                  32G   76K   32G   1% /dev/shm
/dev/sda1             200M  264K  200M   1% /boot/efi
/dev/sda4              55G  8.3G   44G  16% /opt/SP
/dev/sda5              55G   30G   23G  58% /var/SP
172.22.27.141:/root_vdm_1/GDSP_Commmon_NAS
                      493G  227G  266G  47% /var/SP/nfs/gdsp
[m2muser@meylvmacs01 ~]$

但是当我执行下面的操作时,我收到以下错误:

ssh [email protected] sqlplus SOAF_PUBLISHER/S_PUBLISHER_SOAF@OSBS1

尽管 sqlplus exe 存在于另一台服务器的以下目录中/opt/SP/apps/instantclient_11_2/bin

[user1@meylvmacs01 tmp]$ssh [email protected] sqlplus SOAF_PUBLISHER/S_PUBLISHER_SOAF@OSBS1
bash: sqlplus: command not found

应该传递什么选项才能成功执行此操作?

答案1

您有一个未集成在系统中的应用程序(安装在与默认目录不同的目录中,从非默认路径加载库),如果配置不当,这会导致一些麻烦。它可能是这样配置的.bashrc,但是如果您只运行命令而不是交互式 shell,则这通常会被跳过。有两种选择:

  • 使用标准输入将命令发送到服务器:

    echo "sqlplus SOAF_PUBLISHER/S_PUBLISHER_SOAF@OSBS1" | ssh -tt [email protected]
    
  • 修复(或其他启动文件)中的PATHLD_LIBRARY_PATH环境变量启动,~/.bashrc以便非交互式命令不会跳过它们。它通常包含类似的内容

    # If not running interactively, don't do anything
    case $- in
        *i*) ;;
          *) return;;
    esac
    # your commands ...
    

    只需添加修改PATHLD_LIBRARY_PATH在其上方重试即可。

相关内容