Re: Zugriff auf den Rechner von außen
On Wednesday 19 March 2014 18:29:13 Volker Wysk wrote:
> Am Mittwoch, 19. März 2014, 17:48:23 schrieb Jens Schüßler:
> > Lauschte dein sshd überhaupt auf einem anderen Interface als
> > localhost?
> Es sieht so aus. In den Konfigurationsdateien in /etc/ssh sind keine
> Hosts aufgeführt.
>
> > > ~ % ssh 85.179.114.16
> > > ssh_exchange_identification: Connection closed by remote host
> > >
> > > ~ % ssh 85.179.114.16 -p22
> > > ssh_exchange_identification: Connection closed by remote host
> >
> > ssh -v benutzen, dann siehts du mehr, mit -vv noch mehr.
>
> Da kommt:
>
> ~ % ssh -v 85.179.114.16
> OpenSSH_6.5, OpenSSL 1.0.1f 6 Jan 2014
> debug1: Reading configuration data /etc/ssh/ssh_config
> debug1: /etc/ssh/ssh_config line 19: Applying options for *
> debug1: Connecting to 85.179.114.16 [85.179.114.16] port 22.
> debug1: Connection established.
> debug1: permanently_set_uid: 0/0
> debug1: identity file /root/.ssh/id_rsa type -1
> debug1: identity file /root/.ssh/id_rsa-cert type -1
> debug1: identity file /root/.ssh/id_dsa type -1
> debug1: identity file /root/.ssh/id_dsa-cert type -1
> debug1: identity file /root/.ssh/id_ecdsa type -1
> debug1: identity file /root/.ssh/id_ecdsa-cert type -1
> debug1: identity file /root/.ssh/id_ed25519 type -1
> debug1: identity file /root/.ssh/id_ed25519-cert type -1
> debug1: Enabling compatibility mode for protocol 2.0
> debug1: Local version string SSH-2.0-OpenSSH_6.5p1 Debian-6
> ssh_exchange_identification: Connection closed by remote host
>
> Interessant sind die zwei Zeilen:
>
> debug1: Connecting to 85.179.114.16 [85.179.114.16] port 22.
> debug1: Connection established.
>
> Das sieht so aus, als ob die Verbindug zum SSH-Server erst
> hergestellt, doch der verweigert dann das Einloggen. Richtig?
Du willst dich als root auf dem Server anmelden? Wirklich? Das geht nur,
wenn es auch erlaubt ist, siehe in /etc/ssh/sshd_config PermitRootLogin
und man sshd_config.
Wenn du wirklich root-Zugang benötigst, dann solltest du einschränken,
was root über ssh darf. Ich bin hier selbst erst vor 4 Wochen auf ssh
forced commands aufmerksam gemacht worden. Siehe man authorized_keys,
darin suchen nach "command=". Mit diesem Mechanismus kannst du
erzwingen, dass bei einem SSH-Login per Key nur ein vordefiniert Befehl
ausgeführt wird. Der eigentlich gewünschte Befehl wird aber in einer
Umgebungsvariablen durchgereicht. Viele Prüfmöglichkeiten hat man auf
diese Weise nicht, aber immerhin kann man den Befehl gegen einen
Regulären Ausdruck testen.
Bei mir sieht das etwa so aus:
# /root/.ssh/authorized_keys
command="/usr/local/lib/backup/backup_rsync" ssh-rsa ...
michael@schuerig.de
# /usr/local/lib/backup/backup_rsync
#! /bin/sh
if echo $SSH_ORIGINAL_COMMAND | head -1 \
| grep -qs '^rsync --server .* \. /backup$' ; then
$SSH_ORIGINAL_COMMAND
else
/usr/bin/logger -t backup -p user.err -s \
"Illegal command: $SSH_ORIGINAL_COMMAND"
exit 1
fi
Je nach Dateisystem (btrfs, lvm) kannst du diesen Mechanismus auch dazu
nutzen, vor/nach dem eigentlichen Befehl Snapshots deiner Daten
anzulegen.
Michael
--
Michael Schuerig
mailto:michael@schuerig.de
http://www.schuerig.de/michael/
Reply to: