Solved

Linux, problem with remote script and environment variables

Posted on 2013-12-20
2
379 Views
Last Modified: 2013-12-20
I am using RHEL 6.5

I am trying to use ssh to perform a command file
on a target machine.

In order to do this I have attempted to set up
the sshd environment on the target machine (xxclnt2)

However, it appears I was unsuccessful

First I go to the target machine and set the
~/.ssh/environment file to contain the environment
variables contained in a normal session:

[root@xxclnt2 .ssh]# pwd
/home/root/.ssh
[root@xxclnt2 .ssh]# set > /home/root/.ssh/environment
[root@xxclnt2 .ssh]#

Open in new window


Then I record the number of environment variables
that were placed in this file:

[root@xxclnt2 .ssh]# pwd
/home/root/.ssh
[root@xxclnt2 .ssh]# cat environment | wc -l
66
[root@xxclnt2 .ssh]#

Open in new window


Then I make sure the PermitUserEnvironment is set
properly in the sshd config file:

[root@xxclnt2 ssh]# pwd
/etc/ssh
[root@xxclnt2 ssh]# grep "PermitUserEnvironment yes" sshd_config
PermitUserEnvironment yes
[root@xxclnt2 ssh]#

Open in new window


Finally I restart the sshd on the target machine:

[root@xxclnt2 ssh]# /etc/init.d/sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]
[root@xxclnt2 ssh]#

Open in new window


I create a script named /home/test that counts the environment variable lines:

[root@xxclnt2 home]# pwd
/home
[root@xxclnt2 home]# cat test
set | wc -l
[root@xxclnt2 home]#

Open in new window


Now I switch to the remote machine and remotely start
the /home/test

[root@xxclnt1 home]# sshpass -p 'xxxx' ssh root@xxclnt2 /home/test
46
[root@xxclnt1 home]#

Open in new window


So I only see 46 environment variables

What did I do wrong ?

Thanks
0
Comment
Question by:Los Angeles1
2 Comments
 
LVL 19

Accepted Solution

by:
xterm earned 250 total points
ID: 39732611
You didn't do anything wrong - there are certain variables that only get set if you stay logged in.

One example is SSH_TTY which you will see if you do "set | grep _TTY" while logged into xxclnt2- however if you do "ssh xxclnt2 set | grep _TTY" you won't get a result.
0
 
LVL 10

Assisted Solution

by:acbxyz
acbxyz earned 250 total points
ID: 39732656
0

Featured Post

What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Suggested Solutions

Daily system administration tasks often require administrators to connect remote systems. But allowing these remote systems to accept passwords makes these systems vulnerable to the risk of brute-force password guessing attacks. Furthermore there ar…
SSH (Secure Shell) - Tips and Tricks As you all know SSH(Secure Shell) is a network protocol, which we use to access/transfer files securely between two networked devices. SSH was actually designed as a replacement for insecure protocols that sen…
Learn how to get help with Linux/Unix bash shell commands. Use help to read help documents for built in bash shell commands.: Use man to interface with the online reference manuals for shell commands.: Use man to search man pages for unknown command…
Learn how to find files with the shell using the find and locate commands. Use locate to find a needle in a haystack.: With locate, check if the file still exists.: Use find to get the actual location of the file.:

758 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now