[OPENWRT] ssh pubkeys

Pagina: 1
Acties:

  • Mr_gadget
  • Registratie: Juni 2004
  • Laatst online: 02-10 21:11

Mr_gadget

C8H10N4O2 powered

Topicstarter
Ik wil mijn Synology nas met wake on lan op kunnen starten vanaf het internet. Nu log in met ssh op de router als root en voer dan het commando uit. Echter lijkt me dit niet zo veilig. Daar wil ik een extra user aan maken en met deze user pub key authenticatie in laten loggen (is dit veiliger dan een wachtwoord?)

Nu staat er hier een tutorial:
http://wiki.openwrt.org/d...lickeyauthenticationhowto
Dit is echter voor de root user. Echter zegt ie nu: Using username "root". Server refused our key ook als ik de gewone user gebruik..
Ik gebruik putty en de putty keygen. Ik kopieer de pubkey in OPENSSH format. De authorized keys zien er zo uit:

ssh-rsa dddddzg6/4T8LywmVAJVBp8ifsVABf9CxJk/jiT5dfd56d5daffafdScw== rsa-key-20140814
Zijn deze gebruiker afhankelijk of kan elke valid user met deze key inloggen? En putty mist altijd het eerste teken als je plakt..

Tweede vraag:
Ik zou graag een scriptje willen maken met het mac adres er al in. Maar ik krijg de argumenten niet mee..
code:
1
2
3
4
#!/bin/bash
myprog=/usr/bin/etherwake 00:10:32:2b:c0:06
echo "will execute $myprog"
exec "$myprog"

./boot.sh
-ash: ./boot.sh: not found

[ Voor 6% gewijzigd door Mr_gadget op 14-08-2014 19:12 ]


  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Over je tweede vraag:
Is je bestand wel opgeslagen? Hij geeft nu namelijk aan dat ie het bestand niet vinden kan.

  • Gettow
  • Registratie: Maart 2010
  • Laatst online: 04-06-2023
Volgens mij leest Putty enkel zijn eigen formaat keys. Je kan de OpenSSH key met één van de tools in de Putty suite converteren en daarna gebruiken.

Zie: http://linux-sxs.org/networking/openssh.putty.html

[ Voor 18% gewijzigd door Gettow op 14-08-2014 19:17 ]


  • Mr_gadget
  • Registratie: Juni 2004
  • Laatst online: 02-10 21:11

Mr_gadget

C8H10N4O2 powered

Topicstarter
CptChaos schreef op donderdag 14 augustus 2014 @ 19:14:
Over je tweede vraag:
Is je bestand wel opgeslagen? Hij geeft nu namelijk aan dat ie het bestand niet vinden kan.
ja
code:
1
2
 ls -lt boot.sh
-rwxr-xr-x    1 root     root           102 Mar  8 17:04 boot.sh
Gettow schreef op donderdag 14 augustus 2014 @ 19:16:
Volgens mij leest Putty enkel zijn eigen formaat keys. Je kan de OpenSSH key met één van de tools in de Putty suite converteren en daarna gebruiken.

Zie: http://linux-sxs.org/networking/openssh.putty.html
Er staat specifiek bij dat het voor OPENSSH is bedoeld.

  • Gettow
  • Registratie: Maart 2010
  • Laatst online: 04-06-2023
Je wilt Putty de bijbehorende private key van je door OpenSSH gegenereerde key pair toch laten gebruiken?

Putty leest zijn eigen formaat .ppk (Putty private key) bestanden, dus moet je je private key specifiek voor gebruik met Putty converteren. Dat is wat op de bovenstaande link onder de kop 'Converting the OpenSSH private key to Putty format' wordt uitgelegd.

Maar als dit niet is wat je bedoelt begrijp ik je misschien verkeerd :-)

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Mr_gadget schreef op donderdag 14 augustus 2014 @ 19:22:
[...]

ja
code:
1
2
 ls -lt boot.sh
-rwxr-xr-x    1 root     root           102 Mar  8 17:04 boot.sh
Klopt het opgegeven pad dan wel?

  • Mr_gadget
  • Registratie: Juni 2004
  • Laatst online: 02-10 21:11

Mr_gadget

C8H10N4O2 powered

Topicstarter
Gettow schreef op donderdag 14 augustus 2014 @ 19:30:
Je wilt Putty de bijbehorende private key van je door OpenSSH gegenereerde key pair toch laten gebruiken?

Putty leest zijn eigen formaat .ppk (Putty private key) bestanden, dus moet je je private key specifiek voor gebruik met Putty converteren. Dat is wat op de bovenstaande link onder de kop 'Converting the OpenSSH private key to Putty format' wordt uitgelegd.

Maar als dit niet is wat je bedoelt begrijp ik je misschien verkeerd :-)
Ik laat puttygen de private en public key genereren. Weet niet hoe Openwrt een private key kan maken.
Laat puttygen de keys maken, de openssh versie knip en plak ik in de authorized key file van de router en gebruik de public key voor putty.

Hier staat nog iets maar ik heb geen authorized keys per user toch?
http://serialize.wordpres...7/server-refused-our-key/
CptChaos schreef op donderdag 14 augustus 2014 @ 19:31:
[...]
Klopt het opgegeven pad dan wel?
Hoe bedoel je?
code:
1
2
 /home/usr/boot.sh
-ash: /home/user/boot.sh: not found

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Omdat je net wat anders deed:
./boot.sh
-ash: ./boot.sh: not found
Installeer anders even mlocate en gebruik vervolgens updatedb, daarna doe je locate boot.sh en krijg je alle resultaten te zien.

[ Voor 46% gewijzigd door CH4OS op 14-08-2014 19:48 ]


  • Gettow
  • Registratie: Maart 2010
  • Laatst online: 04-06-2023
Mr_gadget schreef op donderdag 14 augustus 2014 @ 19:44:
[...]
en gebruik de public key voor putty.
Ik neem aan dat je hier private key bedoelt?

  • Mr_gadget
  • Registratie: Juni 2004
  • Laatst online: 02-10 21:11

Mr_gadget

C8H10N4O2 powered

Topicstarter
Ja, sorry

EDIT: Ik ben erachter! De authorized key file had als user de andere user en niet root. Een simpele chown root authorized keys en het werkte :X Echter werkt het voor de gewone user dus niet...Hoe maak ik een key voor de non privileged user?

[ Voor 93% gewijzigd door Mr_gadget op 14-08-2014 20:55 ]


Acties:
  • 0 Henk 'm!

  • Gettow
  • Registratie: Maart 2010
  • Laatst online: 04-06-2023
Volgens mij op dezelfde manier, maar dien je de public key aan de authorized keys toe te voegen van de specifieke user via ssh-copy-id. Zie ook: http://linux.die.net/man/1/ssh-copy-id.

Acties:
  • 0 Henk 'm!

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 02-10 20:04

deadinspace

The what goes where now?

Mr_gadget schreef op donderdag 14 augustus 2014 @ 19:11:
Tweede vraag:
Ik zou graag een scriptje willen maken met het mac adres er al in. Maar ik krijg de argumenten niet mee..
code:
1
2
3
4
#!/bin/bash
myprog=/usr/bin/etherwake 00:10:32:2b:c0:06
echo "will execute $myprog"
exec "$myprog"

./boot.sh
-ash: ./boot.sh: not found
Met welke editor heb je dat scriptje geschreven? Ik vermoed dat je het script onder Windows hebt geschreven en dan bestand naar je router hebt gekopieerd. Dan het het script Windows-regeleinden (\r\n) in plaats van Unix-regeleinden (\n), en dat kan die melding veroorzaken.

Je kunt het script converteren met
tr -d '\r' < boot.sh > boot2.sh
Mr_gadget schreef op donderdag 14 augustus 2014 @ 19:56:
De authorized key file had als user de andere user en niet root. Een simpele chown root authorized keys en het werkte :X Echter werkt het voor de gewone user dus niet...Hoe maak ik een key voor de non privileged user?
Op welke locatie op je router die authorized_keys precies?

Acties:
  • 0 Henk 'm!

  • CAPSLOCK2000
  • Registratie: Februari 2003
  • Laatst online: 22:42

CAPSLOCK2000

zie teletekst pagina 888

Mr_gadget schreef op donderdag 14 augustus 2014 @ 19:11:
code:
1
2
3
4
#!/bin/bash
myprog=/usr/bin/etherwake 00:10:32:2b:c0:06
echo "will execute $myprog"
exec "$myprog"

./boot.sh
-ash: ./boot.sh: not found
1. quotes:
code:
1
myprog="/usr/bin/etherwake 00:10:32:2b:c0:06"

Anders staat er: voer het programma "00:10:32:2b:c0:06" met de variabele "myprog=/usr/bin/etherwake"


2. eval ipv exec
code:
1
eval "$myprog"

anders zie bash het tweede deel niet als argument maar als deel van de naam van het programma dat uitgevoerd moet worden.

This post is warranted for the full amount you paid me for it.


Acties:
  • 0 Henk 'm!

  • onlinegangster
  • Registratie: November 2005
  • Laatst online: 23-09 22:30
De SSH public key van je gebruiker moet je op de server/nas opslaan in de home directory van de betreffende gebruiker, deze home dir kan je vinden in het bestand /etc/passwd (ff greppen op de naam van je user), bij mij bijv.
root@fonera:~# grep gebruiker /etc/passwd
gebruiker:$1$luTviNu/$ZwVWKDu2FkWFYv96J6B8n1:500:100::/mnt/sda1/gebruiker:/bin/ash

Hierbij is /mnt/sda1/gebruiker mijn homedir, volgens mij is deze echter standaard leeg bij openwrt (hier kan je dus zelf wat invullen, maar kies een locatie die behouden blijft na een reboot, want sommige folders worden opnieuw gecreeerd bij openwrt)

in deze map maak je vervolgens de submap .ssh
In deze submap maak je een file authorized_keys waar je je openssh public key in stopt (er mogen meerdere in zitten, 1 per regel)
Doe vervolgens:
1. chown gebruiker -R /mnt/sda1/gebruiker
2. chmod 700 $HOME/.ssh
3. chmod 600 $HOME/.ssh/authorized_keys

Om het inloggen te debuggen kan je het 'logread' commando uitvoeren op de server/nas, als het goed is zie je dan het volgende:

Aug 18 22:49:58 fonera authpriv.info dropbear[4274]: Child connection from 192.168.0.13:1844
Aug 18 22:50:00 fonera authpriv.notice dropbear[4274]: Pubkey auth succeeded for 'gebruiker' with key md5 70:e3:9b:2a:1f:7e:1c:1e:4e:e0:df:9f:72:5a:9f:ce from 192.168.0.13:1844

Success!

Those penguins, they sure ain't normal


Acties:
  • 0 Henk 'm!

  • Super_ik
  • Registratie: Maart 2001
  • Laatst online: 08:36

Super_ik

haklust!

Misschien het je geen bash geinstalleerd op je nas?
probeer eens #!/bin/sh

8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek


Acties:
  • 0 Henk 'm!

  • Mr_gadget
  • Registratie: Juni 2004
  • Laatst online: 02-10 21:11

Mr_gadget

C8H10N4O2 powered

Topicstarter
onlinegangster schreef op maandag 18 augustus 2014 @ 22:55:
De SSH public key van je gebruiker moet je op de server/nas opslaan in de home directory van de betreffende gebruiker, deze home dir kan je vinden in het bestand /etc/passwd (ff greppen op de naam van je user), bij mij bijv.
root@fonera:~# grep gebruiker /etc/passwd
gebruiker:$1$luTviNu/$ZwVWKDu2FkWFYv96J6B8n1:500:100::/mnt/sda1/gebruiker:/bin/ash

Hierbij is /mnt/sda1/gebruiker mijn homedir, volgens mij is deze echter standaard leeg bij openwrt (hier kan je dus zelf wat invullen, maar kies een locatie die behouden blijft na een reboot, want sommige folders worden opnieuw gecreeerd bij openwrt)

in deze map maak je vervolgens de submap .ssh
In deze submap maak je een file authorized_keys waar je je openssh public key in stopt (er mogen meerdere in zitten, 1 per regel)
Doe vervolgens:
1. chown gebruiker -R /mnt/sda1/gebruiker
2. chmod 700 $HOME/.ssh
3. chmod 600 $HOME/.ssh/authorized_keys

Success!
Inderdaad gelukt! Gebruik jij ook nog een passkey op de key? Ik kan nu inloggen met een gebruiker met de key. En heb twee dropbear ssh instances draaien, zodat de root wel vanaf het interne netwerk kan inloggen. En ik heb etherwake aan de sudo'ers file toegevoegd zodat een normale gebruiker het script kan runnen. :)
Wat doen het gebruiker:$1$luTviNu/$ZwVWKDu2FkWFYv96J6B8n gedeelte eigenlijk? is dat een password oid?
Super_ik schreef op maandag 18 augustus 2014 @ 23:23:
[...]

Misschien het je geen bash geinstalleerd op je nas?
probeer eens #!/bin/sh
Inderdaad, dat was het inderdaad. Was er zelf na lang Googlen ook achter gekomen dat er standaard geen bash op zit...

Bedankt voor alle tips! _/-\o_

Acties:
  • 0 Henk 'm!

  • onlinegangster
  • Registratie: November 2005
  • Laatst online: 23-09 22:30
Mooi dat het gelukt is, voor meer info mbt. passwd file:
http://www.cyberciti.biz/...ng-etcpasswd-file-format/

Ja een passphrase is wel het veiligst, maar het beperkt het gebruiksgemakt wel wat in, dus het hangt er maar net vanaf hoe veilig het moet zijn ;)

Ik zou trouwens geen aparte SSH instances gebruiken enkel voor root, je kan dit ook op andere manieren restricten, bijv, via the authorized_keys file:

http://www.debian-adminis...o_particular_IP_addresses

Those penguins, they sure ain't normal

Pagina: 1