diff --git a/cookiecutter/vcs.py b/cookiecutter/vcs.py
index ee4feea..417b4ea 100644
--- a/cookiecutter/vcs.py
+++ b/cookiecutter/vcs.py
@@ -70,6 +70,7 @@ def clone(repo_url, checkout=None, clone_to_dir='.', no_input=False):
     :param clone_to_dir: The directory to clone to.
                          Defaults to the current directory.
     :param no_input: Suppress all user prompts when calling via API.
+    :returns: str with path to the new directory of the repository.
     """
     # Ensure that clone_to_dir exists
     clone_to_dir = os.path.expanduser(clone_to_dir)
@@ -84,12 +85,13 @@ def clone(repo_url, checkout=None, clone_to_dir='.', no_input=False):
         raise VCSNotInstalled(msg)
 
     repo_url = repo_url.rstrip('/')
-    tail = os.path.split(repo_url)[1]
+    repo_name = os.path.split(repo_url)[1]
     if repo_type == 'git':
-        repo_dir = os.path.normpath(os.path.join(clone_to_dir, tail.rsplit('.git')[0]))
+        repo_name = repo_name.split(':')[-1].rsplit('.git')[0]
+        repo_dir = os.path.normpath(os.path.join(clone_to_dir, repo_name))
     elif repo_type == 'hg':
-        repo_dir = os.path.normpath(os.path.join(clone_to_dir, tail))
-    logger.debug('repo_dir is %s', repo_dir)
+        repo_dir = os.path.normpath(os.path.join(clone_to_dir, repo_name))
+    logger.debug('repo_dir is {0}'.format(repo_dir))
 
     if os.path.isdir(repo_dir):
         clone = prompt_and_delete(repo_dir, no_input=no_input)

diff --git a/tests/vcs/test_clone.py b/tests/vcs/test_clone.py
index 10c625d..41a48a4 100644
--- a/tests/vcs/test_clone.py
+++ b/tests/vcs/test_clone.py
@@ -74,6 +74,9 @@ def test_clone_should_abort_if_user_does_not_want_to_reclone(mocker, tmpdir):
     [
         ('git', 'https://github.com/hello/world.git', 'world'),
         ('hg', 'https://bitbucket.org/foo/bar', 'bar'),
+        ('git', 'git@host:gitoliterepo', 'gitoliterepo'),
+        ('git', 'git@gitlab.com:cookiecutter/cookiecutter.git', 'cookiecutter'),
+        ('git', 'git@github.com:cookiecutter/cookiecutter.git', 'cookiecutter'),
     ],
 )
 def test_clone_should_invoke_vcs_command(

Fail with gitolite repository
* Cookiecutter version: 1.6.0
* Template project url: Any
* Python version: Any (tested in 3.7)
* Operating System: Any (testes in ubuntu 16.04 and w$ 10)

### Description:

You are running a gitolite in "gitserver" and have a repository "mytemplate". When you run this::

    cookiecutter git clone git@gitserver:mytemplate

You get this fail::

    A valid repository for "git@gitserver:mytemplate" could not be found in the following locations:
C:\Users\javier\.cookiecutters\git@gitserver:mytemplate

### What I've run:

```
$ cookiecutter -v --debug-file log.txt git@gitserver:mytemplate
DEBUG cookiecutter.config: config_path is /home/jsanchez/.cookiecutterrc
DEBUG cookiecutter.utils: Making sure path exists: /home/jsanchez/.cookiecutters/
DEBUG cookiecutter.vcs: repo_dir is /home/jsanchez/.cookiecutters/git@gitserver:mytemplate
Clonar en «mytemplate»...
X11 forwarding request failed on channel 0
remote: Counting objects: 142, done.
remote: Compressing objects: 100% (118/118), done.
remote: Total 142 (delta 14), reused 0 (delta 0)
Receiving objects: 100% (142/142), 91.09 KiB | 0 bytes/s, done.
Resolving deltas: 100% (14/14), done.
Comprobando la conectividad… hecho.
A valid repository for "git@gitserver:mytemplate" could not be found in the following locations:
/home/jsanchez/.cookiecutters/git@gitserver:mytemplate
```
The repository mytemplate is correctly cloned in ~/.cookiecutters/mytemplate::
```
$ ls ~/.cookiecutters/cmsc_tmpl_python/
bin           cookiecutter.json              docs     doit.cfg  LICENSE     poetry.lock     README.md  tests
CHANGELOG.md  {{cookiecutter.project_slug}}  dodo.py  hooks     mkdocs.yml  pyproject.toml  tasks.txt  tox.ini
```
But `repo_dir` points to `~/.cookiecutters/git@gitserver:mytemplate` which don't exists.
tests/vcs/test_clone.py::test_clone_should_invoke_vcs_command[git-git@host:gitoliterepo-gitoliterepo]
tests/vcs/test_clone.py::test_clone_should_raise_if_vcs_not_installed tests/vcs/test_clone.py::test_clone_should_rstrip_trailing_slash_in_repo_url tests/vcs/test_clone.py::test_clone_should_abort_if_user_does_not_want_to_reclone tests/vcs/test_clone.py::test_clone_should_invoke_vcs_command[git-https://github.com/hello/world.git-world] tests/vcs/test_clone.py::test_clone_should_invoke_vcs_command[hg-https://bitbucket.org/foo/bar-bar] tests/vcs/test_clone.py::test_clone_should_invoke_vcs_command[git-git@gitlab.com:cookiecutter/cookiecutter.git-cookiecutter] tests/vcs/test_clone.py::test_clone_should_invoke_vcs_command[git-git@github.com:cookiecutter/cookiecutter.git-cookiecutter] tests/vcs/test_clone.py::test_clone_handles_repo_typo[fatal: tests/vcs/test_clone.py::test_clone_handles_repo_typo[hg: tests/vcs/test_clone.py::test_clone_handles_branch_typo[error: tests/vcs/test_clone.py::test_clone_handles_branch_typo[hg: tests/vcs/test_clone.py::test_clone_unknown_subprocess_error