使用 Git Bash 连接到私有主机 SSH 以部署、管理和开发网站
Connect to private host SSH using Git Bash to deploy, manage, and develop website
我需要连接到我的私人主机帐户,而不是 GitHub 或任何 repo 服务主机,只是我自己的主机,这样我就可以在设置版本控制的同时部署和管理我的网站.
我试图按照在线教程进行操作,但其中 none 展示了如何使用 Git bash 实际连接到 SSH 帐户,他们只展示了 Git init
部分等等。
问题是我找不到该过程的任何实际代码,也找不到要放置的文件或要使用的命令。
最终我设法完成了所有事情,所以这是我关于如何使用 Git bash 连接到私人主机的 SSH 帐户以创建私人存储库的分步指南,部署和管理您的网站。 请随时添加或更正您认为不正确或需要额外信息的任何内容
创建并获取 public 和用于 SSH 访问的私钥
对于这一步,您需要转到您的主机,无论它在哪里,我的恰好是 FastComet,它提供 SSH 访问(我想大多数主机都提供)。
如果您恰好也在使用 FastComet,您可以使用以下指南完成本节,并跳至下一节:
How to Generate and Use SSH Keys
但是如果您不使用 FastComet,这里是您需要执行的操作的摘要。
- 在主机控制面板中找到 SSH 访问菜单。
- Select 创建新的 SSH 访问密钥。
- 这可能要求:
Key Name – 内部识别的key名称
- Key Password – 保护密钥的密码
- 密钥类型 – 您可以在此处选择 DSA 和 RSA
- 密钥大小 – 在 1024、2048 或 4096 位长度之间选择
您可能需要授权密钥,我必须这样做,但您可能不需要,所以环顾四周,看看控制面板中是否有授权选项。
下载私钥。 (抱歉,不太具体,但应该是不言自明的,应该只是在显示私钥的地方旁边有一个下载按钮)
在 Git
上设置 SSH
现在您已经设置了 SSH 访问,您需要实际访问它。通常,您只需打开 git bash 并输入 ssh username@host.com -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
现在保存文件,然后 git bash 中的 exit
,然后再次打开它。如果它要求任何密码短语,请输入您的密码短语(它可能不会,如果有,这意味着您之前已经设置过,所以您知道密码短语是什么)。
类型ssh-add ~/.ssh/FILENAME OF YOUR SSH KEY
- 输入您的密码
完成。您已将 SSH 私钥添加到 SSH 代理。
正在将您的网站(文件)部署到您的主机上
- 现在输入
ssh username@host.com -p <port>
,它应该不会每次都要求您输入密码。
- 为了表彰,我将推荐您参考我用来完成本节目的的这两个指南。
Deploying Website with Git {VIDEO}
Managing Website with Git {ARTICLE}
额外内容
- 在上一节中遵循这两个指南的阶段,我遇到了一个您可能也会遇到的问题:
当我使用命令 git remote add NAME username@yoursite.com/~/REPO.git
时,我无法在 git bash 上将我的主机添加为远程主机。它变得混乱,因为我还必须向 URL 添加一个端口,所以它变得复杂,但最终我想通了。
解决方案: 确保在 URL 之前包含一个 ssh://
,如果您像我一样有端口和文件路径,请使用这种命令格式:
git remote add REMOTENAME ssh://username@host.com:PORT/FILE/PATH TO/REPO.git
我需要连接到我的私人主机帐户,而不是 GitHub 或任何 repo 服务主机,只是我自己的主机,这样我就可以在设置版本控制的同时部署和管理我的网站.
我试图按照在线教程进行操作,但其中 none 展示了如何使用 Git bash 实际连接到 SSH 帐户,他们只展示了 Git init
部分等等。
问题是我找不到该过程的任何实际代码,也找不到要放置的文件或要使用的命令。
最终我设法完成了所有事情,所以这是我关于如何使用 Git bash 连接到私人主机的 SSH 帐户以创建私人存储库的分步指南,部署和管理您的网站。 请随时添加或更正您认为不正确或需要额外信息的任何内容
创建并获取 public 和用于 SSH 访问的私钥
对于这一步,您需要转到您的主机,无论它在哪里,我的恰好是 FastComet,它提供 SSH 访问(我想大多数主机都提供)。
如果您恰好也在使用 FastComet,您可以使用以下指南完成本节,并跳至下一节:
How to Generate and Use SSH Keys
但是如果您不使用 FastComet,这里是您需要执行的操作的摘要。
- 在主机控制面板中找到 SSH 访问菜单。
- Select 创建新的 SSH 访问密钥。
- 这可能要求:
Key Name – 内部识别的key名称
- Key Password – 保护密钥的密码
- 密钥类型 – 您可以在此处选择 DSA 和 RSA
- 密钥大小 – 在 1024、2048 或 4096 位长度之间选择
您可能需要授权密钥,我必须这样做,但您可能不需要,所以环顾四周,看看控制面板中是否有授权选项。
下载私钥。 (抱歉,不太具体,但应该是不言自明的,应该只是在显示私钥的地方旁边有一个下载按钮)
在 Git
上设置 SSH现在您已经设置了 SSH 访问,您需要实际访问它。通常,您只需打开 git bash 并输入 ssh username@host.com -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
现在保存文件,然后 git bash 中的
exit
,然后再次打开它。如果它要求任何密码短语,请输入您的密码短语(它可能不会,如果有,这意味着您之前已经设置过,所以您知道密码短语是什么)。类型
ssh-add ~/.ssh/FILENAME OF YOUR SSH KEY
- 输入您的密码
完成。您已将 SSH 私钥添加到 SSH 代理。
正在将您的网站(文件)部署到您的主机上
- 现在输入
ssh username@host.com -p <port>
,它应该不会每次都要求您输入密码。 - 为了表彰,我将推荐您参考我用来完成本节目的的这两个指南。
Deploying Website with Git {VIDEO}
Managing Website with Git {ARTICLE}
额外内容
- 在上一节中遵循这两个指南的阶段,我遇到了一个您可能也会遇到的问题:
当我使用命令 git remote add NAME username@yoursite.com/~/REPO.git
时,我无法在 git bash 上将我的主机添加为远程主机。它变得混乱,因为我还必须向 URL 添加一个端口,所以它变得复杂,但最终我想通了。
解决方案: 确保在 URL 之前包含一个 ssh://
,如果您像我一样有端口和文件路径,请使用这种命令格式:
git remote add REMOTENAME ssh://username@host.com:PORT/FILE/PATH TO/REPO.git