GELÖST: dropbear und authorized_keys

hssuhle

Neuer User
Mitglied seit
16 Mai 2005
Beiträge
174
Punkte für Reaktionen
0
Punkte
16
Hallo, miteinander!

Nachdem ich mich im Moment ein Bisschen festgefahren habe, brauche ich bitte mal Hilfe:

Auf meiner 7170 läuft seit Ewigkeiten dropbear. Jetzt habe ich versucht, auf Authentifikation über authorized keys umzusteigen. Aber dropbear will einfach die keys nicht erkennen.

Folgendes habe ich bisher versucht:
Code:
# Aendern des Root Home-Dirs
cp -p /var/tmp/passwd /var/tmp/passwd.old 
sed -e "/root:/s#:/:#:/var/tmp:#" /var/tmp/passwd.old > /var/tmp/passwd

# Kontrolle:
cat /var/tmp/passwd
root:x:0:0:root:/var/tmp:/bin/sh
ftpuser:any:1000:0:ftp user:/var/media/ftp:/bin/sh

Danach habe ich meine Client-id_rsa.pub in die /var/tmp/.ssh/authorized_keys kopiert.

Gestartet wird dropbear bei mir mit
Code:
/var/tmp/dropbear -s -r /var/tmp/dropbear_rsa_hostkey -d /var/tmp/dropbear_dss_hostkey

Kann es sein, dass dropbear SSH1 nutzt? SuSE nutzt auf alle Fälle SSH2. Ist das so?
Update: Kann ich ausschließen. dropbear nutzt SSH2.
Hier das Protokoll:
Code:
OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to fritz [192.168.150.1] 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_dsa type -1
debug1: Remote protocol version 2.0, remote software version dropbear_0.48
debug1: no match: dropbear_0.48
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_4.6
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-cbc hmac-md5 none
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: sending SSH2_MSG_KEXDH_INIT
debug1: expecting SSH2_MSG_KEXDH_REPLY
debug1: Host 'fritz' is known and matches the RSA host key.
debug1: Found key in /root/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering public key: /root/.ssh/id_rsa
debug1: Authentications that can continue: publickey
debug1: Trying private key: /root/.ssh/id_dsa
debug1: No more authentication methods to try.
Permission denied (publickey).

Vielen Dank schonmal für alle Eure Antworten!

Schönen Gruß!

hssuhle
 
Zuletzt bearbeitet:
hi, versuch es mal mit bussybox - funktioniert bei mir wunderbar.
auszug aus meiner debug.cfg:
Code:
HDD='USBtoSerial-ATAbridge-Partition-0-1' # hdd: fritzbox
TEMP='/var/tmp'
PASSWORD='<mein verschlüsseltes passwort>'

[...]

#>> ssh
   cd $TEMP
   cp /var/media/ftp/$HDD/7170/dropbear $TEMP
   cp /var/media/ftp/$HDD/7170/busybox $TEMP
   chmod +x dropbear
   $TEMP/busybox sed -e "/root:/s#^root:[^:]*:#root:$PASSWORD:#" -i $TEMP/shadow
   ln -s $TEMP/dropbear dropbearkey
   $TEMP/dropbearkey -t rsa -f dropbear_rsa_host_key
   $TEMP/dropbearkey -t rsa -f dropbear_dss_host_key
   $TEMP/dropbear -p 22 -r $TEMP/dropbear_rsa_host_key -d $TEMP/dropbear_dss_host_key
#<< ssh

so, dropbear und busybox kannst je nach kernelversion hier downloaden:
1. wie bei mir auf die festplatte und dann im tmp kopieren
2. oder direkt mit wget ftp://the-construct.com/files/linux26/busybox und wget ftp://the-construct.com/files/linux26/dropbear (für kernel 2.6)
 
Moin, radislav,

danke erstmal für Deine Antwort.

Welche Authentifikations-Methode nutzt Du mit dropbear? Passwort?

Wie gesagt: Das klappt hier seit Ewigkeiten bestens. Ich versuche gerade, (von der Passwort-Methode weg) auf Authentifikation mit authorized_keys umzustellen (ohne Passwort!). Und das will einfach nicht.

Schönen Gruß!

hssuhle
 
Gelöst!

AAARGH! Ein absolut billiger Fehler!

Mein Ordner /var/tmp hatte zu viele Rechte:

Code:
drwxrwxrwx    6 root     root            0 Mar 29 16:29 tmp

Nun habe ich ihn auf 700 gesetzt, und alles läuft wie am Schnürchen!

Klasse!

Schönen Gruß!

hssuhle
 
Nur um's klarzustellen.

Der public key kann ganz normal ins home-verzeichnis des benutzers: $HOME/.ssh/authorized_keys und muss nicht in /etc/dropbear/authorized_keys wie oft geschrieben.

Den Benutzer muss man natürlich erstmal in /etc/passwd eintragen.
 
Hallo
Ich weiß es wurde bis zum erbbrechen abgehandelt, aber irgendwie packs ich das nicht, alles andere funktioniert bei mir tadellos:confused:


Ich habe in jetzigen Zustand den Dropbear erfolgreich gestartet und melde mich per Passwort an.

Nun möchte ich aber einen "dualen" Zugang erhalten, sprich Passwort + Key

In Moment schaut meine Datei, die für das starten von Dropbear notwendig ist so aus

Code:
# check kernel version
KERNEL_VERSION=`uname -r | grep 2.6`
if [ -z "${KERNEL_VERSION}" ]
then
  KERNEL_VERSION="linux24"
  ETHERWAKE="etherwake"
else
  KERNEL_VERSION="linux26"
  ETHERWAKE="ether-wake"
fi

# init busybox var
BUSYBOX="/bin/busybox"

# load SSH-Server (dropbear) and etherwake

# CONFIGURATION

# SSH
# port
dropbearport="2222"
# password
PASSWD='PAssowort'

# Etherwake
# MAC address
wolmac="xx:xx:xx:xx:xx:xx"
# interface to use for WOL
# intf = std  - ata
# eth0 = LAN1 - WAN
# eth1 = LAN2 - LAN1
wolinterface="eth0"

# CONFIGURATION END

# try to load files from USB drive
for f in /var/media/ftp/*
do
  if [ -f ${f}/files/${KERNEL_VERSION}/dropbear ]
  then
    echo "${f}/files/${KERNEL_VERSION}/dropbear"
    cp ${f}/files/${KERNEL_VERSION}/dropbear /var/tmp/dropbear
  fi
done
# check if file already exists
if [ ! -f /var/tmp/dropbear ]
then
  # wait for server
  while !(ping -c 1 ftp.the-construct.com)
  do
    sleep 5
  done
  # load files
  wget -qO /var/tmp/dropbear http://ftp.the-construct.com/files/${KERNEL_VERSION}/dropbear
fi

# try to load files from USB drive
for f in /var/media/ftp/*
do
  if [ -f ${f}/files/${KERNEL_VERSION}/busybox ]
  then
    echo "${f}/files/${KERNEL_VERSION}/busybox"
    cp ${f}/files/${KERNEL_VERSION}/busybox /var/tmp/busybox
  fi
done
# check if file already exists
if [ ! -f /var/tmp/busybox ]
then
  # wait for server
  while !(ping -c 1 ftp.the-construct.com)
  do
    sleep 5
  done
  # load files
  wget -qO /var/tmp/busybox http://ftp.the-construct.com/files/${KERNEL_VERSION}/busybox
fi

# make them executable
chmod +x /var/tmp/busybox
chmod +x /var/tmp/dropbear

# set busybox var
BUSYBOX="/var/tmp/busybox"

# change root password
${BUSYBOX} sed -e "/root:/s#^root:[^:]*:#root:${PASSWD}:#" -i /var/tmp/shadow

# create symlink for dropbearkey
ln -s /var/tmp/dropbear dropbearkey

${BUSYBOX} uudecode -o /var/tmp/dropbear_rsa_host_key << 'RSA'
begin 600 /var/tmp/dropbear_rsa_host_key
M````!W-S:"UR<V$````#`0`!````@P"-:>3RO<EH&B"1#H*L9>PQI<%W9U@*
M,`^,%,RO`^)EDPC`V!W"`[2/A^*R29'-,?U)HV.JIT!9$@X\!\OABG;D,!R@
M_95Q`B3430?/8ULXY9=CM-%,@8[`:Z^TAW\@MM[:EEUQE7E[(CYOO!..3AM8
M\!U*M'2=@EU@%^T_#R/TW'`?````@C!)$ZE$WV0!X]/3X@^.G[<6$WB[6T;C
M03/"&%^\$DX_A=(?&0X9J,H'BH+X]N5;)]+`C/0$ML:3$30S+TS\,_M6Y8;H
MH\,'JY:%VXO3;O3@'61X]S[#2$E\<0.WOB1JF9M1##&A=HY:VCW"F5K41X`P
MR$;.;EM[7G'D^5K=_LDX)U4```!"`*K59^TL<[,S=$_:97MC#=Q*%+LBLZ\?
M.7X<Y+'!!4QSJK-$Z02NRSS&*M\89E)<ZQQ,Q(A+AXW96D+E:-?$W"E-````
M0@#3Z<7D<D$HOT<:6TGYY&JA+_:SV$/,$=]2:`3[@G],6P$$>O9!`MC;%T8$
6_Q\H+71<H#9,[KP.F1U3"IRFX<'I&P``
`
end

RSA

${BUSYBOX} uudecode -o /var/tmp/dropbear_dss_host_key << 'DSS'
begin 600 /var/tmp/dropbear_dss_host_key
M````!W-S:"UD<W,```"!`*F<\RO"QTYP+,WVAMM*HH".[;)2\`7?U8R$+I7Y
MOS3RGF!(T"'LM,A3SP939%4'11F_,C(X)L.=TG\P]4>W=T"4F"SA%3)7\T?&
M:W)9[1B4/9\P#//P1*ZI*U.(R4-(1&A-6<$\=M`$>'?HT;%(D^"'\;>S!NDO
MO:KE:F6'R51Q````%0"(,X&IU'YUBJZ:>2C!=?GYLR`/HP```(`8"OLGX"$V
M(KI6U@+/XD3&%R+'%&1NVI_=:ES*4,/!*'?Y<232?:!X&5+FV]NQ3=UM;;$E
MILNG`$9/_=_@BF+=>C,+WJ$?_Z,9^[&88&%M]4"/39='G2?33M6:BMVVB0'M
M+C`1FFFW"PUJ^@S1*R[:?0ZB\]6K\;OA$1IP,ZN`J0```(`W$!?`AY6C`?1S
M0V(D/3^.-!=0\GW8O%LHCE+<L[7@NSN8$?:/05-,Z-OQOD%=:B-W*W0W#685
M9F86#/UWM)L=:SVH2]#/Q:TJX%+`Y[\789P@*_09S44=R3F+8_>+:094'5;F
M/8Y^T\!2'>JCQ]^+#H[V+8.TV-BK-C#P%\:#\0```!0@P9C`O-\FD)5_X'R[
'3U53FK(4,0``
`
end

DSS

# start dropbear
sleep 5
/var/tmp/dropbear -p ${dropbearport} -r /var/tmp/dropbear_rsa_host_key -d /var/tmp/dropbear_dss_host_key

# create simplified WOL script
echo "${BUSYBOX} ${ETHERWAKE} -i ${wolinterface} ${wolmac}" > /var/tmp/startpc

# make it executable
chmod +x /var/tmp/startpc

Nun möchte ich also gern Folgenes erreichen:
1. Files von meinen USBStick kopieren(Sofern man es nichtdirekt
von den USBStick starten kann) der Pfad ist
$USBDISK/Modifikationen/Zusatzfunktionen/Dropbear/
Die Sortigen Files heißen:
-dropbearmulti
-sftp-server

Ist also ein anderes Dropbear wie das von The-Construct.

2. Die Key anmeldung zusätzlich erlauben
In den Ordner auf den Stick ist ebenfalls ein Ordner Namens .ssh mit
meinen authorized_keys

Den Key habe ich dort, denke ich, erfolgreich dort eingetargen.


Habe es schon jetzt des öfteren versucht, aber sobald ich oben an den Befehlen was ändere startet Dropbear leider nicht mehr, eventuell kann mir jemand helfen:)

Danke
 
Kostenlos!

Statistik des Forums

Themen
248,922
Beiträge
2,305,229
Mitglieder
378,646
Neuestes Mitglied
atrora