Re: ssh
- From: James <oscartheduck@xxxxxxxxx>
- Date: Wed, 31 Oct 2007 08:52:51 -0600
On 10/31/07, Michael Grant <mg-fbsd3@xxxxxxxxx> wrote:
On 10/31/07, James <oscartheduck@xxxxxxxxx> wrote:
from
On 10/31/07, Michael Grant <mg-fbsd3@xxxxxxxxx> wrote:
On 10/31/07, James <oscartheduck@xxxxxxxxx> wrote:
On 10/31/07, Michael Grant <mg-fbsd3@xxxxxxxxx > wrote:
If I'm sued as root and I ssh somewhere, ssh/scp reads it's files
want,/root/.ssh/. The docs say it reads from ~/.ssh which is what I
expanding ~but it's not doing that. When sued, the shell is properly
/home/username/.ssh/id_rsa'"follows:to my home dir.
Anyone know of a way around this behavior?
Michael Grant
su - root
Nope. One other suggestion was 'su -l root'. This does not change
the situation either.
I went into the source for ssh and it does a getuid() and then gets
the homedir of that uid. So no amount of fooling with su is gonig to
fix this. I guess it's like this for security reasons, it sure seems
like a bug to me. I'd have used the HOME enviroment variable.
So far, the best fix I've found is to create some aliases in bash as
alias scp="scp -o User=username -i ~/.ssh/id_rsa"
alias ssh="ssh -l username -i ~/.ssh/id_rsa"
alias rsync="rsync -op -e 'ssh -l username -i
root,
Yeah, I misread your problem. Are you saying that you want to su to
but still have some variables set as they were on the account you suedfrom?
So you have a user named Michael, say, and you su to root, but when youssh
you want Michael's .ssh to be the effective one?
Well sort of. When I su, $HOME is set to my homedir and $USER set to
mgrant. This is fine. However, ssh (when sued) doesn't read
$HOME/.ssh, it reads /root/.ssh. And it's not defaulting to logging
into the remote machine as $USER, it tries to log in as root. It does
this because it's hardwired in the code more or less as follows (I've
extracted the relevant code from ssh.c):
original_real_uid = getuid();
pw = getpwuid(original_real_uid);
sprintf(buf, "%s/%s", pw->pw_dir, "ssh-config");
read_config_file(buf);
options.user = strdup(pw->pw_name);
Like I said, it seems like a bug to me. Personally I would have done
a getenv("HOME") and getenv("USER") myself instead of depending on the
userid. Probably they had good reason for doing it the way they did
it.
So I think the problem is unsolvable using options to su. Only
solution I found so far was the aliases above.
Michael Grant
You could just pop your code in there and compile it as you want it. Maybe
submit it back to openssh as a bugfix.
_______________________________________________
freebsd-questions@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscribe@xxxxxxxxxxx"
- References:
- Prev by Date: 7.0 BETA1 and cvsup
- Next by Date: Re: 7.0 BETA1 and cvsup
- Previous by thread: Re: ssh
- Next by thread: Re: ssh
- Index(es):
Relevant Pages
|
|