Enviaments etiquetats ‘Mac OS X’

gener 16, 2011

Muntant un servidor de Subversion en un Mac OS X

He muntat un servidor de Subversion a l’ordinador de la feina, i com que al final he fet servir guies i recomanacions de llocs diferents he escrit aquestes notes per a una futura referència i per si a algú li poden ser d’ajut.

L’ordinador en qüestió és un iMac amb el Mac OS 10.6, i l’objectiu és deixar en funcionament un dipòsit (repository) SVN que sigui accessible a través de HTTP i també remotament per SSH. Per a això últim, Subversion facilita molt les coses amb el protocol svn+ssh. Així doncs, els programes que necessitarem són Subversion, Apache, WebSVN i SSH.

setembre 21, 2010

Vim: obrir URLs amb l’open de Mac

Doncs això. Estàs treballant amb un fitxer de text des del vim i de cop et trobes amb una adreça d’internet que vols obrir. Per no haver-la de copiar, obrir el navegador i enganxar-la, pots escriure la següent funció al teu ~/.vimrc:

function! OpenURI()
  let s:uri = matchstr(getline("."), '[a-z]\+://[^ \>,;:]\+')
  echo s:uri
  if s:uri != ""
    exec '!open "' . s:uri . '"'
  else
    echo "No URI found in line."
  endif
endfunction

Aquesta funció utilitza la comanda open de Mac, utilíssima. Suposo que adaptar-ho a un altre sistema operatiu és fàcil, sobretot si tot el que t’interessa és obrir una pàgina web. Ara, quan estiguem situats en una línia on hi ha una adreça de l’estil http://… (o …://…), n’hi ha prou amb escriure

:call OpenURI()

I ens obrirà la pàgina en el nostre navegador per defecte. Com que això és una mica pesat, al ~/.vimrc hi podem incloure també la línia

map ,o :call OpenURI()

i així només ens caldrà apretar la combinació de tecles ,o (o qualsevol altra que definim, això va a gustos).

Etiquetes: , , , , , ,
setembre 13, 2010

Autentificació ssh amb clau RSA o DSA

Quan es treballa en ordinadors remots se sol fer servir ssh. Quan s’hi treballa molt, qualsevol simplificació en el seu ús és benvinguda. Un exemple és a l’hora de fer túnels a través d’un ordinador intermedi. L’exemple d’avui, encara més senzill, serveix per no haver d’escriure la contrassenya cada vegada: n’hi ha prou amb identificar-se amb un parell de claus pública-privada, ja sigui RSA o DSA. També serveix, és clar, per scp. Me’l van comentar l’altre dia en Gabriele i en Pietro. Gràcies!

La idea és la següent. En el nostre ordinador generem un parell de claus, una pública i l’altra privada. Mantenim les dues al nostre ordinador (sobretot la privada!), i la pública l’enviem a l’ordinador remot amb qui ens solem connectar. A partir d’aleshores, cada vegada que ens tornem a connectar el nostre ordinador s’identificarà mitjançant la nostra clau privada i el remot ho comprovarà amb la pública, de la mateixa manera que una signatura digital en un correu electrònic.

I ara, els passos. Primer, ens generem el parell de claus amb ssh-keygen. En el nostre ordinador escrivim:

$ ssh-keygen

Per defecte ens generarà un parell de claus RSA. Si volguéssim utilitzar l’algoritme DSA, caldria especificar-ho escrivint:

$ ssh-keygen -t dsa

Ens demanarà dues coses. Primer, a quin arxiu volem desar la clau. Premem enter per acceptar el l’estàndard, ~/.ssh/id_rsa. Després ens demana la frase de pas. Podem escriure’n alguna o ho podem deixar en blanc. Si es deixa en blanc, mai caldrà identificar-se. Si se n’escriu alguna, cada vegada que ens volguem connectar amb ssh haurem d’escriure-la, tot i que amb Mac OS X (no conec els altres casos) tindrem l’opció d’emmagatzemar-la per no haver-la de reescriure.

Una vegada generada ens queden dos arxius: la clau privada, ~/.ssh/id_rsa, que hem de mantenir aquí, i la pública, ~/.ssh/id_rsa.pub, que hem de copiar a l’ordinador remot. Si aquest ordinador es diu, per exemple, remot.example.net, i el nostre usuari és lblisset, hem d’escriure:

$ scp ~/.ssh/id_rsa.pub lblisset@remot.example.net:.ssh/authorized_keys

I ja està! Evidentment, podem copiar la mateixa clau pública a tants ordinador com necessitem. La privada, però, ha de quedar sempre al nostre.

setembre 11, 2010

Túnels i ssh: ProxyCommand

Es tracta d’una cosa ben senzilla però que sempre m’havia portat problemes. Fins ara utilitzava ssl -L, però finalment n’he trobat una solució ben senzilla i còmode, i la poso aquí per si a algú li pot ser útil.

La situació és la següent: ens volem connectar per ssh a un servidor situat dins d’una xarxa remota (e.g., internal.example.net), i aquest servidor no accepta connexions directes des d’internet, sinó que per arribar-hi cal connectar-se primer a un servidor intermig que serveix d’entrada a la xarxa (e.g., gateway.example.net). Doncs la solució és ben senzilla: es pot utilitzar la comanda netcat, nc, junt amb ProxyCommand dins l’arxiu ~/.ssh/config, i així es permet la connexió directe a internal.example.net a través del proxy gateway.example.net.

Per configurar-ho així cal fer el següent. Obra l’arxiu ~/.ssh/config amb el teu editor de texts preferit,

$ vim ~/.ssh/config

i escriu-hi això:

Host internal.example.net internal
  User          lblisset
  HostName      internal.example.net
  ProxyCommand  ssh lblisset@gateway.example.net nc %h %p 2> /dev/null

I ja està. Ara us podeu connectar directament a internal.example.net escrivint simplement $ ssh internal.example.net o $ ssh internal. I les comandes scp i rsync també funcionen com si poguéssim veure directament internal.example.net. Fàcil! Per saber-ne més, $ man 5 ssh_config.

Res més, us deixo una altra eina que us pot ser útil per a túnels ssh amb el Mac OS X: tunnelopen.

juny 11, 2010

Diccionaris de català i italià per Mac

Em passen dos diccionaris per a Mac, el català de l’Institut d’Estudis Catalans (DIEC2) i l’italià. Per disfurtar-los, descomprimiu-los i guardeu-los a /Library/Dictionaries/.

Follow

Get every new post delivered to your Inbox.

Join 117 other followers