Я настоятельно рекомендую использовать Cygwin для приема SSH-соединений на вашем компьютере с Windows. Это позволит вам выполнять поиск по нему и входить в него, а также входить из удаленной системы через ssh в оболочку Bash и командную строку git.
user@linuxhost$ ssh 192.168.x.x
Last login: Sun Feb 12 08:20:07 2017 from 10.x.x.x
user@windowshost$ echo $0 && git --version
-bash
git version 2.8.3
Оболочку, конечно, можно настроить по умолчанию: ash, bash, dash и sh включены по умолчанию, но просто запустите установщик Cygwin, и вы можете добавить свой выбор zsh, mksh, tcsh или posh. Затем добавьте следующую строку в /etc/nsswitch.conf
:
db_shell: /bin/sh
возможно, заменив /usr/bin/sh
на путь к вашей предпочитаемой оболочке. Все процессы Cygwin (окна терминала и служба sshd) должны быть перезапущены, чтобы настройки вступили в силу.
Есть даже способ получить приглашение cmd или powershell при входе в систему, о котором я недавно узнал в Stackoverflow.
- Загрузите winpty для Cygwin и извлеките
winpty.exe
, winpty.dll
и winpty-agent.exe
в /bin
. Если вы делаете это снаружи терминала Cygwin, найдите подкаталог bin
в папке установки Cygwin.
Создайте два пакетных файла в /bin
и убедитесь, что у них есть разрешения на выполнение. Давайте назовем их winpty-cmd.bat и winpty-powershell.bat и наполним их следующим содержимым, где, конечно, <cygwin path>
является заполнителем для пути, к которому вы установили Cygwin (по умолчанию это C:\cygwin
):
@ECHO OFF
<cygwin path>\bin\winpty.exe cmd
а также
@ECHO OFF
<cygwin path>\bin\winpty.exe powershell
Поместите одну из этих строк в /etc/nsswitch.conf
:
db_shell: /bin/winpty-cmd.bat
или же
db_shell: /bin/winpty-powershell.bat
- Перезапустите службу sshd.
Поскольку название было "перефразировано", и мое сообщение теперь может показаться неуместным, позвольте мне прямо ответить на исходный вопрос:
"Используйте git bash вместо cmd при загрузке из Linux"
В дополнение к использованию Cygwin для приема соединений ssh на компьютере с Windows:
- Выполните шаг
1.
выше.
Создайте файл с именем <cygwin path>\bin\winpty-gitbash.bat
с этим содержимым, где <cygwin path>
является заполнителем для пути, к которому вы установили git-for-windows (по умолчанию это C:\Program Files\Git
):
@ECHO OFF
SET PATH="/bin"
<cygwin path>\bin\winpty.exe "<git path>\bin\bash.exe"
Поместите эту строку в /etc/nsswitch.conf
:
db_shell: /bin/winpty-gitbash.bat
- Перезапустите службу sshd.
Обновление - сентябрь 2018 года:
Все меняется, и Win32-OpenSSH теперь позволяет выбирать оболочку по умолчанию (фактически любую оболочку), устанавливая ее путь в разделе реестра. Смотрите недавний ответ Бретлосзе.