我需要连接到我的私有(private)主机帐户,而不是 GitHub 或任何存储库服务主机,而只是我自己的主机,这样我就可以在设置版本控制的同时部署和管理我的网站。
我尝试按照在线教程进行操作,但没有一个演示如何使用 Git bash 实际连接到 SSH 帐户,它们只演示了 Git init
部分等等。
问题是我找不到该进程的任何实际代码,或者将哪些文件放在哪里,或者使用哪些命令。
最佳答案
最终我设法完成了所有工作,因此这是我的分步指南,介绍如何使用 Git bash 连接到私有(private)主机的 SSH 帐户、创建私有(private)存储库、部署和管理您的网站。 请随时添加或更正任何您认为不正确或需要额外信息的内容
创建并获取用于 SSH 访问的公钥和私钥
对于这一步,您需要转到您的主机,无论它在哪里,我的主机恰好是 FastComet,它提供 SSH 访问(我认为大多数主机都这样做)。
如果您碰巧也在使用 FastComet,您可以使用以下指南来完成本部分,并跳至下一部分:
How to Generate and Use SSH Keys
但是,如果您不使用 FastComet,这里总结了您需要执行的操作。
- 在主机控制面板中找到“SSH 访问”菜单。
- 选择创建新的 SSH 访问 key 。
- 这可能会要求:
按键名称 - 用于内部识别的按键名称
- key 密码 - 保护 key 的密码
- key 类型 - 您可以在此处选择 DSA 和 RSA
- key 大小 - 选择 1024、2048 或 4096 位长度
您可能需要授权 key ,我必须这样做,但您可能不需要,所以环顾四周,看看控制面板中是否有授权选项。
下载私钥。 (抱歉,不太具体,但应该是不言自明的,显示私钥的旁边应该有一个下载按钮)
在 Git 上设置 SSH
现在您已经设置了 SSH 访问,您需要实际访问它。通常,您只需打开 git bash 并输入 ssh <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="8bfef8eef9e5eae6eecbe3e4f8ffa5e8e4e6" rel="noreferrer noopener nofollow">[email protected]</a> -p <port>
,然后它会提示您输入密码,然后登录,然后就可以开始了。但如果您像我一样不想每次都输入密码,请按照以下步骤操作。
- 打开您的
.ssh
文件夹,通常位于C:/users/YOURUSERNAME/.ssh
(或~/.ssh
) - 粘贴您从上一部分下载的私钥。
- 打开 git bash,您需要打开
.bashrc
文件,我首选的文本编辑器是 Notepad++,所以我在 bash 中给它起了一个别名npp
,所以cd ~
并在 bash 中输入:npp .bashrc
打开后
.bashrc
,将以下代码粘贴到其中:env=~/.ssh/agent.env agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; } agent_start () { (umask 077; ssh-agent >| "$env") . "$env" >| /dev/null ; } agent_load_env # agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?) if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then agent_start ssh-add elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then ssh-add fi unset env
现在保存文件,然后
exit
退出 git bash,然后再次打开它。如果它要求输入任何密码,请输入您的密码(可能不会,如果有,则意味着您之前已经设置过,所以您知道密码是什么)。类型
ssh-add ~/.ssh/FILENAME OF YOUR SSH KEY
- 输入您的密码
完成。您已将 SSH 私钥添加到 SSH 代理中。
将您的网站(文件)部署到您的主机上
- 现在输入
ssh <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="6c191f091e020d01092c04031f18420f0301" rel="noreferrer noopener nofollow">[email protected]</a> -p <port>
而且它不应该每次都要求您输入密码。 - 为了表示感谢,我将向您推荐我用于实现本节目的的两本指南。
Deploying Website with Git {VIDEO}
Managing Website with Git {ARTICLE}
额外内容
- 在遵循上一节中的两个指南的阶段,我遇到了您也可能遇到的问题:
当我使用命令 git remote add NAME <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d3a6a0b6a1bdb2beb693aabca6a1a0baa7b6fdb0bcbe" rel="noreferrer noopener nofollow">[email protected]</a>/~/REPO.git
时,我无法在 git bash 上将我的主机添加为远程主机。这变得令人困惑,因为我还必须向 URL 添加端口,所以它变得复杂,但最终我弄清楚了。
解决方案:确保包含 ssh://
在 URL 之前,如果您像我一样有端口和文件路径,请使用以下格式的命令:
git remote add REMOTENAME ssh://<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="74010711061a151911341c1b07005a171b19" rel="noreferrer noopener nofollow">[email protected]</a>:PORT/FILE/PATH TO/REPO.git
关于git - 使用 Git Bash 连接到私有(private)主机 SSH 来部署、管理和开发网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37023707/