Mi proveedor de VPS recomienda que deje mi puerto SSH con el número de puerto personalizado que le asignan de manera predeterminada (no 22). La cuestión es que, aunque sé que puedo dar el número de puerto al crear una configuración remota, parece que no puedo hacer lo mismo al hacer un clon de git. Estoy usando gitolite, así que los comandos de clonación se ven así:
git clone [email protected]:gitolite-admin
¿Hay alguna forma de convertir esto en usar el número de puerto ssh personalizado?
También debo mencionar que estoy ejecutando cygwin en Windows. He visto varios lugares que dicen agregar el puerto personalizado al ~/.ssh/config
archivo como
Host mydomain.com
Port 12345
sin embargo, en cygwin, ese archivo no parece existir.
git
version-control
ssh
cygwin
ryanzec
fuente
fuente
.ssh/config
(noconf
) en el directorio de inicio de su usuario. No es necesario para la operación básica y, por lo tanto, no existe de manera predeterminada. Tendrás que crearlo. Intentevim ~/.ssh/config
(o use su editor de texto instalado preferido) para abrirlo / crearlo./Users/USERX/.ssh/config
, debe configurar suHOME
entorno local/Users/USERX
.Respuestas:
Tenga en cuenta que el número de puerto debe estar allí sin los corchetes: []
fuente
git clone [email protected]:[port]/gitolite-admin
git clone ssh://[email protected]:port/home/user/gitolite-admin
1 ¿Cuál es el problema con la forma del archivo de configuración ssh?
Cuando el archivo de configuración no existe, puede crear uno. Además
port
del archivo de configuración puede incluir otra opción de configuración ssh:user
IdentityFile
y así sucesivamente, el archivo de configuración se ve asíSi está ejecutando Linux, tenga cuidado de que el archivo de configuración debe tener un permiso estricto: lectura / escritura para el usuario y que otros no puedan acceder
2 ¿qué pasa con la forma de url ssh?
Es genial, lo único que deberíamos saber es que hay dos sintaxis para ssh url en git
ssh://[user@]host.xz[:port]/path/to/repo.git/
[user@]host.xz:path/to/repo.git/
De forma predeterminada, Gitlab y Github mostrarán la url de sintaxis como scp , y no podemos proporcionar el puerto ssh personalizado. Entonces, para cambiar el puerto ssh, necesitamos usar la sintaxis estándar
fuente
Cuando desee una ruta relativa desde su directorio de inicio (en cualquier UNIX), use esta extraña sintaxis:
ssh://[user@]host.xz[:port]/~[user]/path/to/repo
Por ejemplo, si el repositorio está en
/home/jack/projects/jillweb
en el servidorjill.com
y está iniciando una sesión comojack
lasshd
escucha en el puerto 4242:ssh://[email protected]:4242/~/projects/jillweb
Y al iniciar sesión como
jill
(suponiendo que tenga permisos de archivo):ssh://[email protected]:4242/~jack/projects/jillweb
fuente
(Actualización: unos años más tarde, Google y Qwant "aerolíneas" todavía me envían aquí cuando busco "puerto ssh no predeterminado de git") Una forma probablemente mejor en las nuevas versiones de git es usar el GIT_SSH_COMMAND ENV.VAR como:
GIT_SSH_COMMAND="ssh -oPort=1234 -i ~/.ssh/myPrivate_rsa.key" \ git clone myuser@myGitRemoteServer:/my/remote/git_repo/path
Esto tiene la ventaja adicional de permitir cualquier otra opción adecuada para ssh (puerto, priv.key, IPv6, dispositivo PKCS # 11, ...).
fuente