Przekazywanie opcji ssh do git clone
Próbuję uruchomić git clone
bez sprawdzania przez ssh klucza hosta repozytorium. Mogę to zrobić z ssh tak:
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no user@host
Czy Jest jakiś sposób na przekazanie tych samych opcji ssh do polecenia git clone?
Edit: istnieje ograniczenie, którego nie mogę modyfikować ~/.ssh/config
ani żadnych innych plików na tym komputerze.
6 answers
Dodaj je do swojego ~/.ssh/config
:
Host host
HostName host
User user
SshOption1 Value1
SshOption2 Value2
Wpis Host
jest tym, co określisz w wierszu poleceń, a {[3] } jest prawdziwą nazwą hosta. Mogą być takie same lub wpis Host
może być aliasem. Wpis User
jest używany, jeśli nie podasz user@
w wierszu poleceń.
Jeśli musisz skonfigurować to w wierszu poleceń, Ustaw zmienną środowiskową GIT_SSH
tak, aby wskazywała skrypt z opcjami.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-23 21:57:10
Niedawno wydany git 2.3 obsługuje nową zmienną "GIT_SSH_COMMAND", która może być użyta do zdefiniowania polecenia z parametrami.
GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" git clone user@host
$GIT_SSH_COMMAND
ma pierwszeństwo przed$GIT_SSH
i jest interpretowane przez powłokę, co pozwala na dodatkowe argumenty wliczony w cenę.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-15 15:09:05
Oto przykład jak przekazać Argumenty ssh używając zmiennej GIT_SSH:
$ echo 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no $*' > ssh
$ chmod +x ssh
$ GIT_TRACE=1 GIT_SSH="$PWD/ssh" git clone user@host
uwaga: powyższe linie są wierszami poleceń terminala, które należy wkleić do terminala. Tworzy plik ssh, czyni go wykonywalnym i wykonuje go.
Jeśli chcesz przekazać opcję klucza prywatnego, Sprawdź jak powiedzieć gitowi, którego klucza prywatnego użyć?.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-20 10:04:24
Inną opcją pozwalającą określić różne klucze jest git config core.sshCommand
z git 2.10 + (Q3 2016)
Jest to alternatywa dla zmiennej środowiskowej opisanej w Borys 'S answer )
Zobacz commit 3c8ede3 (26 Jun 2016) by Nguyễn Thái Ngọc Duy (pclouds
).
(dodany przez Junio C Hamano -- gitster
-- in commit dc21164 , 19 Jul 2016)
Dodano nową zmienną konfiguracyjną
core.sshCommand
do określ jaką wartość GIT_SSH_COMMAND ma użyć dla każdego repozytorium.Podobne do
$GIT_ASKPASS
lub$GIT_PROXY_COMMAND
, czytamy również z najpierw plik konfiguracyjny, a następnie powrót do$GIT_SSH_COMMAND
.Jest to przydatne do wybierania różnych kluczy prywatnych ten sam host (np. github)
core.sshCommand:
Jeśli ta zmienna jest ustawiona,
git fetch
igit push
będą używać podanego polecenia zamiastssh
, gdy będą musiały połączyć się ze zdalnym systemem.
Komenda jest w taka sama postać jak zmienna środowiskowaGIT_SSH_COMMAND
i jest nadpisywana, gdy zmienna środowiskowa jest ustawiona.
Oznacza to, że git clone
Może być:
cd /path/to/my/repo
git config core.sshCommand 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'
# later on
git clone host:repo.git
Jeśli chcesz zastosować to dla wszystkich repo, jak user1300959 dodaje w komentarzach, użyjesz globalnej konfiguracji
git config --global core.sshCommand ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:17:51
Myślę, że update git do wersji >= 2.3 I use GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" git clone user@host
jest opcją bet, ale jeśli nie jest to możliwe, @josh-lee dał dobrą opcję, ale proszę, zaktualizuj swoją odpowiedź wciskając plik konfiguracyjny SSH.
Host host
HostName host
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-23 19:18:31
Ten problem został rozwiązany, wykonując następujące kroki w maszynie okien: -
Utwórz plik konfiguracyjny pod C:\Users\username.folder ssh.
-
Dodaj następujący wiersz do pliku konfiguracyjnego.
host <HOST> hostname <HOSTNAME> user <USER_NAME> IdentityFile ~/.ssh/id_rsa IdentitiesOnly yes port <PORT_NUMBER> KexAlgorithms +diffie-hellman-group1-sha1
Spróbuj jeszcze raz.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-20 20:53:29