ssh Posts

AppleScript: Simppeli SCP Droplet


Usein koneella värkätessä tulee tarve siirtää tiedostoja jemmaan joko omalle kotipalvelimelle tai Buffalon Linkstation Live – verkkolevylle. SCP on kätevä komento moiseen kun MacBookissa tulee pidettyä iTerm2 käynnissä jatkuvasti, tosin komennon naputtelu on aavistuksen hitaampaa, joten miksei sitä tekisi pientä dropletia työpöydälle, jonka päälle raahaamalla tiedosto siirtyy SCP:llä kohteeseen. Olen värkännyt kumpaisellekin laitteelle oman dropletin seuraavan mallin mukaisesti AppleScriptillä. 

Ensin luodaan SSH- avainpari sekä lähde- että kohdekoneille tämän ohjeen mukaisesti. Avataan Skriptieditori ja liitetään alla oleva koodinpätkä siihen (muista vaihtaa ensimmäisen rivin kohdekoneen osoite tarpeisiisi sopivaksi.

property scp_target : “käyttäjä@kohdekone:polku/haluamaasi/hakemistoon”

on open fileList

repeat with thisFile in fileList

set the item_path to the quoted form of the POSIX path of thisFile

do shell script (“scp ” & item_path & ” ” & scp_target)

end repeat

end open

Tallenna seuraavaksi yllä oleva skripti työpöydällesi muodossa ‘Ohjelma’ ja laita täppä kohtaan ‘Vain suoritus’ nyt kun raahaat haluamasi tiedoston tekemäsi skriptin kuvakkeen päälle siirtyy se valitsemallesi kohdekoneelle scp:n avustuksella knhan olet luonut koneillesi ssh-avainparin.

SSH – No Matching Cipher Found

Terminal-Replacement_256x256

 

 

 

 

 

 

 

 

Törmäsinpä äskettäin tällaiseen merkilliseen ongelmaan yrittäessäni ottaa ssh-yhteyttä Mac Mini koneeltani Raspberry Pi:n. Eteen tuli virheilmoitus:

no matching cipher found: client blowfish-cbc,aes128-cbc,3des-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc server aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com

Onko sitten syynä viimeisin OS X Yosemiten Beta (10.10.2) vaiko sitten jokin RasPi:ssa hyrräävän Debian Jessie:n päivitys, mutta yhteyttä ei vain saanut syntymään.  Pikaisen tutkailun jälkeen yllä oleva kryptinen virheilmoitus näyttäisi liittyvän salaukseen. Palvelin puolelta näyttäisi puuttuvan tuki seuraaville chiphereille: blowfish-cbc,aes128-cbc,3des-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc – Hämmentävää!

Ongelman voi kiertää pakottamalla käyttämään palvelimen tukemaa cipher:ä komentamalla ssh -c aes128-ctr tunnus@host – Jonka jälkeen pitäisi päästä kirjautumaan palvelinkoneelle. Seuraava vaihe on lisätä varmasti toimivat cipher:t sshd_config – tiedostoon. Komennetaan sudo nano /etc/ssh/sshd_config ja lisätään seuraavat rivit tiedoston loppuun:

Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,blowfish-cbc,aes128-cbc,3des-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc

Käynnistetään sshd uudelleen: sudo service sshd restart ; sudo service sshd status ja seuraavaksi kokeillaan ottaa yhteys päätteen kautta komentamalla ssh tunnus@host – oletettavasti eteen tulee virheilmoitus: WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! – ei huolta saati murhetta vaan komennetaan ssh-keygen -R hostname , jossa hostname on palvelinkoneen ip ja tämän jälkeen kaiken tulisi toimia kuten ennenkin.

Mosh: the mobile shell

 

mosh

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Sarjassamme: “Vanhakin koira oppii uusia temppuja”. Vastaan tuli tällainen mahdottoman kätevä palikka nimeltään Mosh, josta en aiemmin ollut kuullutkaan. Käytän päivittäin iTerm2:sta ja olen yhteydessä SSH:n yli Kapsin palvelimeen, sekä omaan pikkuiseen RaspberryPi-purkkiini, sekä vpc:n. Ongelmana on ollut yhteyden katkeaminen kun Mac menee lepotilaan tai kun talouden 4G-pohjainen nettiyhteys kuukahtaa.

Ongelmaan ei ole auttanut OS X-päässä WiFi-asetusten ruuvaaminen tai lepotilan estäminen, vaan lähes poikkeuksetta jossain välissä SSH-yhteys on katkennut ‘Broken Pipe’-ilmoitukseen. Edes KeepAlive tai TCPKeepAlive=yes – asetus eivät moista estä. Pidemmän tauon jälkeen on aina ollut edessä uudelleen yhdistäminen kullekin palvelimelle. Hidasta ja ärsyttävää. Ongelmaan ratkaisuksi löytyi Mosh, joka on mobiiliaikakaudelle suunniteltu etäterminaaliohjelma.

Lyhykäisyydessään Mosh on SSH:n korvaaja ja se on parhaimmillaan juurikin Wifi- ja mobiiliyhteyksille. Toisin kuin SSH, Mosh ei ikinä katkaise yhteyttä kun vaikkapa nettiyhteys katkeaa, vaan odottaa kunnes yhteys taas toimii. Jos tietokone menee lepotilaan tai WiFi-yhteys katkeaa Mosh odottelee kiltisti, että yhteys palautuu.

Mosh on ilmainen ja saatavilla GNU/Linux, FreeBSD, Solaris, Mac OS X ja Android – järjestelmille. Jotta Mosh toimii tulee se olla asennettuna sekä asiakas- että palvelin-koneille. Mosh ei korvaa olemassa olevaa pääteohjelmaasi, vaan voit asennuksen jälkeen ottaa yhteyden tutulla pääteohjelmallasi etäkoneeseen komennolla: mosh user@ip.ip.ip.ip eli aivan kuin SSH:lla. Moshin kanssa voit käyttää vanhoja SSH-avaimiasi, sillä se käyttää SSH:ta aluksi yhteyden autentikointiin, jonka jälkeen se vaihtaa omaan protokollaan, joka käyttää UDP-paketteja.