libssh vs alternatywni użytkownicy root

0

Oto fragment pliku / etc / passwd na zdalnym komputerze.

root:x:0:0:root:/root:/bin/bash
valid:x:0:0::/home/valid:/bin/rbash

Jak widzisz, poprawna jest alternatywną nazwą roota.

Mogę ssh do dowolnego konta za pomocą zwykłego polecenia ssh:

ssh root@remoteMachine
[...]
# whoami
root
# pwd
/root

i

ssh valid@remoteMachine
[...]
> whoami
<command unknown>
> pwd
<command unknown>

(wyłączyliśmy komendy za pomocą rbash)

Teraz jednak, gdy łączysz się z remoteMachine jako użytkownik „poprawny” z libssh, zdalnie whoami zwraca root, i pwd zwraca /home/admin. Wydaje się również, że powłoka, w której wszystko działa, to rbash (znaleziony za pomocą ps -ef | grep tototototo )

Pytanie brzmi: czy jest to jakiś błąd w libssh, czy jest to błąd w ssh, który nie pojawi się w wierszu poleceń ssh?

fzd
źródło
To dziwne: powłoka jest wymuszana przez serwer, a klient nie powinien wiedzieć, jak to zrobić valid i root są tym samym użytkownikiem. Jakim wariantem unix i implementacją ssh jest serwer? Czy możesz opublikować dzienniki serwera (z /var/log/auth.log lub podobne)? Czy masz jakieś aliasy ~/.ssh/config? Czy sprawdziłeś, że nie jest wykonywane multipleksowanie?
Gilles
@Gilles: Oto co mam: strona klienta: $ uname -a Linux Debian6 2.6.32-5-686 #1 SMP Mon Jun 13 04:13:06 UTC i686 GNU/Linux $ ssh -v OpenSSH_5.5p1 Debian6, OpenSSL 0.9.8o 01 Jun 2010 Po stronie serwera: $ uname -a Linux #Company Name# 2.6.32-33-generic #72_Ubuntu SMP Fri Jun 29 21:08:37 UTC 2011 i686 GNU/Linux $ ssh -v OpenSSH_5.3p1 Debian_3ubuntu7, OpenSSL 0.9.8k 25 Mar 2009 Nie ma katalogu /home/admin/.ssh. /root/.ssh nie zawiera skonfigurowanego pliku / katalogu.
@Gilles: Gdy uruchamiasz mój kod po stronie klienta, oto logi /var/log/auth.log: Accepted password for valid from 192.168.1.20 port 33513 ssh2 pass_unix (sshd:session) session opened for user valid by (uid=0) pass_unix (sshd:session) session closed for user valid Teraz zmienia się tylko to, że kiedy używam linii poleceń ssh, zmienia się numer portu. (do czegoś w linii 57337)
Jaki jest wynik następującego polecenia: ssh valid@remoteMachine 'echo $BASHOPTS; echo $BASH $HOME; whoami'? Czy to się zmienia, jeśli przekażesz opcję -t do ssh? Co jeśli uruchomisz ssh interaktywnie i wpiszesz te polecenia? I z libssh? Co zawierają pliki startowe /home/admin zawierać ( .profile, ,bash_profile, .bash_login, .bashrc )?
Gilles