abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 23:55 | Komunita

    Ubuntu 26.04 LTS bude (𝕏) Resolute Raccoon (rezolutní mýval).

    Ladislav Hagara | Komentářů: 0
    včera 21:00 | Nová verze

    Netwide Assembler (NASM) byl vydán v nové major verzi 3.00. Přehled novinek v poznámkách k vydání v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    včera 20:11 | Komunita

    Linuxová distribuce Frugalware (Wikipedie) ke konci roku 2025 oficiálně končí.

    Ladislav Hagara | Komentářů: 0
    včera 17:22 | Nová verze

    Byla vydána nová verze 3.0.6 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP bude brzy k dispozici také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    včera 16:11 | IT novinky

    Americký výrobce čipů AMD uzavřel s americkou společností OpenAI smlouvu na několikaleté dodávky vyspělých mikročipů pro umělou inteligenci (AI). Součástí dohody je i předkupní právo OpenAI na přibližně desetiprocentní podíl v AMD.

    Ladislav Hagara | Komentářů: 1
    včera 12:22 | Nová verze Ladislav Hagara | Komentářů: 0
    5.10. 20:00 | Komunita

    Byly zpracovány a na YouTube zveřejněny videozáznamy z konference LinuxDays 2025.

    Ladislav Hagara | Komentářů: 0
    4.10. 15:22 | IT novinky

    Na konferenci LinuxDays 2025 byl oficiálně představen nový router Turris Omnia NG.

    Ladislav Hagara | Komentářů: 34
    4.10. 05:22 | Komunita

    Přímý přenos (YouTube) z konference LinuxDays 2025, jež probíhá tento víkend v Praze v prostorách FIT ČVUT. Na programu je spousta zajímavých přednášek.

    Ladislav Hagara | Komentářů: 16
    3.10. 22:44 | IT novinky

    V únoru loňského roku Úřad pro ochranu osobních údajů pravomocně uložil společnosti Avast Software pokutu 351 mil. Kč za porušení GDPR. Městský soud v Praze tuto pokutu na úterním jednání zrušil. Potvrdil ale, že společnost Avast porušila zákon, když skrze svůj zdarma dostupný antivirový program sledovala, které weby jeho uživatelé navštěvují, a tyto informace předávala dceřiné společnosti Jumpshot. Úřad pro ochranu osobních údajů

    … více »
    Ladislav Hagara | Komentářů: 10
    Jaké řešení používáte k vývoji / práci?
     (38%)
     (45%)
     (15%)
     (17%)
     (22%)
     (15%)
     (18%)
     (16%)
     (15%)
    Celkem 181 hlasů
     Komentářů: 12, poslední 4.10. 20:35
    Rozcestník

    SSH kluce na usb flashdisku

    14.9.2006 11:07 | Přečteno: 1637× | poslední úprava: 14.9.2006 11:44

    Obcas sa potrebuje kazdy z nas pripojit na nejaky vzdialeny stroj pomocou ssh. Ja osobne na dva. Z prace domov, z prace k priatelke na server a z domu k priatelke na server.
    Kedze stroje su verejne dostupne a logy sa plnili hlaskami o zlom hesle, moja paranoia zacala gradovat. Pristupil som teda k ciastocnej eliminacii rizik, zakazal som password loginy, povolil login len na svoje konto a to len pomocou kluca. To so sebou prinieslo ale dalsiu nevyhodu, ktorou je skladovanie tohoto kluca. Doma s tym problem nemam, ale v praci?
    Tak som si kluc presunul na usb flash disk, ktory som mal vzdy zastrceny v kompe, ked som sa potreboval niekam pripojit. Samozrejme, ked som siel na obed, alebo dlhsie mimo kompu, kluc som braval so sebou. A to znamenalo neustale mounty, unmounty, linky, unlinky. Prestavalo ma to bavit, najma preto, ze to cele bolo okorenene tym, ze som stale musel zadavat heslo ( nie som samovrah, kluc je samozrejme zaheslovany ).

    To ma dozralo a zacal som skumat, ako na to. SSH pouzivam uz roky rokuce a par krat som pocul nieco o nejakom tajuplnom ssh agentovi, ale nikdy som sa nedokopal k tomu, aby som ho trosku nastudoval. Tak som sa do toho pustil.

    Prve, co ma napadlo, bolo ps ax | grep agent. A hu-ha, on uz bezal ( zistil som, ze od startu X, alebo KDE ). Vyskusal som spustit prikaz ssh-add /media/myusbkey1/keys/id_dsa_msk. Vypytal si heslo ku klucu, ktore obratom obdrzal. Nasledne spojenie ku mne domov prebehlo bez hesla. Zajasal som radostou. Huraaaaa, mam to! A tak sa moja diskoteka s usb klucom obmedzila na ranne pripojenie usb-cka, mount, ssh-add, heslo, umount. Ked som siel od kompu, stacilo ssh-add -x + nejake heslo. Samozrejme ako kazdy rypal, musel som to este nejak vylepsit. Co-to som uz pocul o udev, ved ked ten usb kluc strcim do kompu, rozsvieti sa mi pekna modra ikonka usb disku na paneli ( KDE ). A tak som si vymyslel dalsi scenar: rano pridem do prace, strcim tam usb kluc, agent si sam kluce naimportuje a ja mozem usb disk odpojit a cely den si uzivat bezhesloveho pristupu.

    Takze som zacal studovat udev a moznost spustania scriptov pri urcitych eventoch. S udev som sa potrapil, pretoze ani jeden navod, ktory som nasiel na automount usb klucov, u mna nezafungoval. Po case som zistil, ze som vlastnikom usb klucenky, ktora odmieta oznamit svoje SYSFS{serial}. Vygooglil som teda sposob, akym to obist a pokracoval som vo "vyvoji" mojho prveho udev-rule.
    KERNEL="sd*", SYSFS{vendor}="Corsair", SYSFS{model}="Flash*Voyager*", NAME{all_partitions}="myusbkey%n" RUN+="echo lama > /tmp/lama"
    
    Po prvotnom uspechu, ktory sa prejavil tym, ze po vlozeni usb klucenky sa mi v /dev/ objavili zariadenia mysubkey* a v /tmp sa objavil subor lama s rovnakym obsahom, som zacal premyslat, ako to vyuzit tak, aby na mna v Xoch vyskocilo okno a vypytalo si heslo. Najprv som spekuloval s pythonom a qt, kym som si poriadne neprecital manual k ssh-add a nenarazil v nom na zmienku o SSH_ASKPASS. A za par desiatok minut bol na svete tento script:
    #!/bin/sh
    
    # create new file in /etc/udev/rules.d with similar content ( RUN+= must stay!! )
    #KERNEL="sd*", SYSFS{vendor}="Corsair", SYSFS{model}="Flash*Voyager*", NAME{all_partitions}="myusbkey%n" RUN+="/home/msk/bin/import_ssh_key.sh signalize" GROUP="your_login"
    
    # on which device keys are
    KEYPARTITION="myusbkey1"
    
    # path to keys ( from media root, separated by ',' )
    KEYS="keys/id_dsa_key1,keys/id_dsa_key2"		# kluce mam na /media/myusbkey1/keys
    
    # time of sleep between checks
    SLEEPTIME=10
    
    # your login
    USERNAME="msk"
    
    # binary of ssh_askpass
    ASKPASS_BIN=/usr/bin/ssh-askpass-fullscreen
    
    
    
    PIPEFILE=/tmp/keys_pipe
    
    
    if [ "$1" == "signalize" ]; then
    	# send signal
    	echo "MYUSBKEY_INSERTED:$DEVNAME" > $PIPEFILE
    	# and change ownership, because we was called from udev as root
    	chown $USERNAME $PIPEFILE
    
    else
    
    	# create pipe signalization file
    	rm -f $PIPEFILE
    
    	# endless cycle
    	while true; do
    
    		if [ -e $PIPEFILE ]; then	
    
    			# get content of pipe file
    			MSG=$(cat $PIPEFILE)
    		
    			# test if contains message from udev
    			TST=$(echo $MSG | grep "MYUSBKEY_INSERTED:/dev/$KEYPARTITION" | wc -l)
    			if [ "$TST" != "0" ]; then
    	
    				# mount device
    				pmount $KEYPARTITION
    		
    				# for all configured keys
    				IFS=,
    				export SSH_ASKPASS=$ASKPASS_BIN
    				for key in $KEYS; do
    					KEYPATH=/media/$KEYPARTITION/$key
    					# check if key isn't already loaded
    					if [ "$(ssh-add -l | grep $KEYPATH | wc -l)" == "0" ]; then
    						# add key
    						ssh-add $KEYPATH < /dev/null
    					fi
    				done
    	
    				# umount device
    				pumount $KEYPARTITION
    	
    				# done
    				> $PIPEFILE
    	
    			else
    				# no signal from udev, sleep
    				sleep $SLEEPTIME
    			fi
    		fi
    	
    	done
    
    fi
    
    V /etc/udev/rules.d vznikol novy subor 99-myusbkey.rules s nasledovnym obsahom:
    KERNEL="sd*", SYSFS{vendor}="Corsair", SYSFS{model}="Flash*Voyager*", NAME{all_partitions}="myusbkey%n" RUN+="/home/msk/bin/import_ssh_key.sh signalize" GROUP="msk"
    
    Pokial netrpite podobnym problemom s usb klucenkou ako ja, pouzite SYSFS{manufacturer} a SYSFS{serial} ( namiesto vendor a model ) podla navodov dostupnych po celom Internete.

    V KDE autostart spravte link na import_ssh_key.sh tak, aby sa spustil po logine do KDE ( pripadne ineho wm ). Script bude bezat na pozadi a v pripade, ze sa vlozi usb klucenka, pokusi sa naimportovat kluce uvedene v $KEYS. Heslo si vypyta pomocou fulscreen dialogu ( aptitude install ssh-askpass-fullscreen ), ssh askpass je mozne zmenit v $ASKPASS_BIN.
    Povodne som script napisal tak, aby s udev komunikoval pomocou fifo ( a nemuselo by sa cyklicky sleepovat, predsa to zere trosicku vykonu, ale asi zanedbatelne ), ale dochadzalo k deadlockom ( pokial nahodou na druhej strane fifo nikto nepocuval ), na ktorych udev ostal vysiet. Takze som z fifo spravil obycajny textovy subor, na ktorom udev nemoze ostat vysiet a 10 shell instrukcii za 10 sekund je asi v pohode :o).

    Tak a teraz idem zasuvat a vysuvat, pomedzi to budem robit ssh-add -D a uzivat si svoje veldielo :o)
    Snad sa to niekomu hodi...

    Pokial niekto vie o nejakom systemovejsom rieseni, popiste ho v diskusii.        

    Hodnocení: 100 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    14.9.2006 11:21 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
    Rozbalit Rozbalit vše Re: SSH kluce na usb flashdisku
    Všechno je to moc pěkné, také jsem si takhle hrál, než jsem zjistil, že s jiným jádrem může být všechno jinak. Ted už na to peču. Když potřebuji něco z nějakého usb zařízení, tak si preventivně nejdřív vypíšu
    cat /proc/partition
    a pak to raději mountuju ručně.
    msk avatar 14.9.2006 11:29 msk | skóre: 27 | blog: msk
    Rozbalit Rozbalit vše Re: SSH kluce na usb flashdisku
    No jo, ale ked ja to pouzivam na 2 strojoch s identickym jadrom a distribuciou, tak je to v pohode.
    msk avatar 14.9.2006 11:22 msk | skóre: 27 | blog: msk
    Rozbalit Rozbalit vše Re: SSH kluce na usb flashdisku
    Este som zabudol dodat: chcel by som nieco podobne spravit s openvpn-kovymi certifikatmi ( strcim usb, vypyta si heslo, nahodi vpn ). Tusite niekto, ci by sa na to dal nejak zneuzit ssh agent, pripadne kwallet?
    msk avatar 14.9.2006 11:45 msk | skóre: 27 | blog: msk
    Rozbalit Rozbalit vše Re: SSH kluce na usb flashdisku
    Ehm, trosku nepozornosti a uz je tu druha uprava scriptu :o). Pridal som test, ci existuje pipefile a odstranil -c zo ssh-add, pretoze necitam poriadne manualy :o)
    14.9.2006 12:03 Jan Kundrát (jkt) | skóre: 27 | blog: jkt | Praha - Bohnice
    Rozbalit Rozbalit vše Re: SSH kluce na usb flashdisku
    No, ja osobne pouzivam pam_ssh, kteryzto umi heslem zadanym pri loginu "odemknout" ssh klic, ktery je pravda stale ulozen v ~. Bohuzel jsem jeste nenasel pam_gpg a byl jsem liny si ho napsat sam :).
    14.9.2006 12:55 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: SSH kluce na usb flashdisku
    par veci k bashu

    1.)
    # path to keys ( from media root, separated by ',' )
    KEYS="keys/id_dsa_key1,keys/id_dsa_key2"
    oddeloval by som to medzerou, potom sa netreba srat s prenastavovanim IFS

    2.)
    # get content of pipe file
    MSG=$(cat $PIPEFILE)
    		
    # test if contains message from udev
    TST=$(echo $MSG | grep "MYUSBKEY_INSERTED:/dev/$KEYPARTITION" | wc -l)
    if [ "$TST" != "0" ]; then
    da sa to nahradit
    if grep -q "MYUSBKEY_INSERTED:/dev/$KEYPARTITION" "$PIPEFILE"; then
    
    3.)

    namiesto kazdych 10 sekund sa pokusat citat subor, sa da nieco ako
    tail -f "$PIPEFILE" |
    while true; do
        read msg
        dosomething "$msg"
    done
    
    vtedy sa uz ale neda grepovat priamo subor, ale musi sa cez to echo
    if echo "$msg" | grep -q "MYUSBKEY_INSERTED:/dev/$KEYPARTITION"; then
    
    If you hold a Unix shell up to your ear, you can you hear the C.
    msk avatar 14.9.2006 14:32 msk | skóre: 27 | blog: msk
    Rozbalit Rozbalit vše Re: SSH kluce na usb flashdisku
    Priznam sa, ze s tym tail ma to vobec nenapadlo. A pritom ho pouzivam denne :o). Dik za tip.
    10.5.2011 23:11 lukas
    Rozbalit Rozbalit vše Re: SSH kluce na usb flashdisku
    Zdravím, potreboval by som pomôcť. V ubuntu, na jednej pracovnej stanici si chccem zriešiť prostredníctvom vmware ubuntu server (inú možnosť zatiaľ nepoznám), potrebujem aby ubuntu komunikovalo s ubuntu serverom, pretože mám k dispozícii token ikey2032, na ktorom budem mať certifikát, kľúč atď, ďalej chcem vyriešiť prihlásenie do ubuntu prostredníctvom spomínaného tokenu a to tak, že párový kľúč slúžiaci k autentifikácii bude uložený na strane servera a po zastrčení tokenu do usb portu táto auatentifikácia prebehne a následne by som mal byť prihlásený v ubuntu. Vopred ďakujem, za každú pomoc.. :)

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.