Mostrando entradas con la etiqueta ssh. Mostrar todas las entradas
Mostrando entradas con la etiqueta ssh. Mostrar todas las entradas

jueves, 27 de enero de 2011

GIT: Crear un proyecto y subirlo a un servidor

El proceso inicial es bastante raro, aviso.
Se supone que hemos estado trabajando con nuestro repositorio local, pero ahora queremos subirlo a nuestro repositorio central para compartirlo con mas gente.

Para ello vamos a crear la carpeta en el servidor, vamos a configurarla y después uniremos el trabajo realizado en local con la carpeta en el servidor.

Se supone que ya tenemos nuestra carpeta creada localmente (git init, git add, git commit, etc), pero para que no haya lios vamos a mostrar el proceso entero.
En local creamos la carpeta ejemplo, e inicializamos el proyecto ahí:
LOCAL
mkdir ejemplo
cd ejemplo
git init

Si intentamos sincronizar el proyecto vacío nos devolverá error (No refs in common and none specified; doing nothing.), así que añadimos nuestros archivos del proyecto y realizamos un commit (pondré algo a modo de ejemplo, pero podéis poner el vuestro proyecto directamente).
LOCAL
echo ejemplo > ejemplo.txt
git add .
git commit

Ahora vamos a crear la carpeta en el servidor, donde vamos a guardar el proyecto.

El directorio raíz de todos los proyectos lo vamos a situar en /var/git (se puede cambiar).
No hay ningún problema en ponerlo en otro sitio.

Por estándar el nombre de la carpeta del proyecto es el mismo que el del proyecto local, pero terminado en .git, si nuestro proyecto se llama ejemplo, pues usaremos “ejemplo.git”.

Nos situamos en /var/git, creamos la carpeta ejemplo.git y entramos en ella:
SERVIDOR
mkdir ejemplo.git
cd ejemplo.git

Una vez creada la carpeta se inicializará el respositorio con este comando (desde la carpeta):
SERVIDOR
git init --bare --shared=group

Asignarle el bit s a la carpeta creada
SERVIDOR
cd ..
chmod -R g+s ‘ejemplo.git’

Tener cuidado de asignar la carpeta al grupo que queramos (en este caso utilizamos el grupo git):
SERVIDOR
chgrp -R git ejemplo.git

Ya hemos terminado el trabajo en el servidor, ahora solo quería sincronizar el proyecto desde donde tengamos nuestro repositorio local, si estamos en nuestra maquina en la carpeta ejemplo hacemos:
LOCAL
git push --all ssh://’user’@’server’/var/git/ejemplo.git

Una vez hecho esto ya esta en el servidor.

Para que queden bien todas las referencias dentro del proyecto lo mas sencillo es borrarlo del repositorio local, y clonarlo desde el servidor, así no habrá problemas:
LOCAL
rm -rf ejemplo
git clone ssh://’user’@’server’/var/git/ejemplo.git

Debemos asegurarnos que ‘user’ pertenece al mismo grupo al que pertenece la carpeta que queremos bajar(en este caso git).

Podemos editar el fichero /etc/group y añadirnos:
git:x:1005:user1,user2,user3,...

miércoles, 26 de enero de 2011

Configuración basica de ssh en linux

No es que vaya a salvar la vida a nadie esta ayuda, pero puede ser útil cuando trabajamos mucho con sesiones ssh, o cuando no nos apetece tener que aprendernos las direcciones ip, o simplemente queremos escribir menos.

Si accedemos de la siguiente manera:
  • ssh usuarioP@192.168.1.14
Podemos configurar el fichero ~/.ssh/config para no tener que escribir todo el tiempo el usuario con el que vamos a entrar y la dirección:
Host ejemplo
Hostname 192.168.1.14
User usuarioP

A partir de entonces nos bastará con:
  • ssh ejemplo

martes, 25 de enero de 2011

Varias sesiones por un mismo socket

Esto nos sirve para cuando tenemos que abrir varias sesiones hacia una maquina (por ssh).

En vez de tener que logearnos una vez por cada sesión sólo (con acento ¬¬) nos logearemos una vez para todas las sesiones, y estas sesiones compartiran el socket entre ellas.

Para conseguir esto tenemos que escribir lo siguiente en el fichero ~/.ssh/config :
Host *
ControlMaster auto
ControlPath ~/.ssh/socks/%r@%h:%p
Y ya esta listo.

martes, 20 de abril de 2010

SSH sin contraseñas

Generamos la clave, que puede ser dsa o rsa.

Una de ejemplo con dsa:

ssh-keygen -t dsa
ssh-copy-id -i ~/.ssh/id_dsa.pub usuario@servidor

Pues ya esta :P

Si no disponemos de ssh-copy-id podemos hacer lo siguiente:

scp ~/.ssh/id_dsa.pub usuario@servidor:.
ssh usuario@servidor
cat id_dsa.pub >> ~/.ssh/authorized_keys