git - 使用 Git Bash 连接到私有(private)主机 SSH 来部署、管理和开发网站

标签 git deployment web web-deployment git-bash

我需要连接到我的私有(private)主机帐户,而不是 GitHub 或任何存储库服务主机,而只是我自己的主机,这样我就可以在设置版本控制的同时部署和管理我的网站。

我尝试按照在线教程进行操作,但没有一个演示如何使用 Git bash 实际连接到 SSH 帐户,它们只演示了 Git init 部分等等。

问题是我找不到该进程的任何实际代码,或者将哪些文件放在哪里,或者使用哪些命令。

最佳答案

最终我设法完成了所有工作,因此这是我的分步指南,介绍如何使用 Git bash 连接到私有(private)主机的 SSH 帐户、创建私有(private)存储库、部署和管理您的网站。 请随时添加或更正任何您认为不正确或需要额外信息的内容

创建并获取用于 SSH 访问的公钥和私钥

对于这一步,您需要转到您的主机,无论它在哪里,我的主机恰好是 FastComet,它提供 SSH 访问(我认为大多数主机都这样做)。

如果您碰巧也在使用 FastComet,您可以使用以下指南来完成本部分,并跳至下一部分:

How to Generate and Use SSH Keys

但是,如果您不使用 FastComet,这里总结了您需要执行的操作。

  1. 在主机控制面板中找到“SSH 访问”菜单。
  2. 选择创建新的 SSH 访问 key 。
  3. 这可能会要求:
  4. 按键名称 - 用于内部识别的按键名称

    • key 密码 - 保护 key 的密码
    • key 类型 - 您可以在此处选择 DSA 和 RSA
    • key 大小 - 选择 1024、2048 或 4096 位长度
  5. 您可能需要授权 key ,我必须这样做,但您可能不需要,所以环顾四周,看看控制面板中是否有授权选项。

  6. 下载私钥。 (抱歉,不太具体,但应该是不言自明的,显示私钥的旁边应该有一个下载按钮)

在 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> ,然后它会提示您输入密码,然后登录,然后就可以开始了。但如果您像我一样不想每次都输入密码,请按照以下步骤操作。

  1. 打开您的.ssh文件夹,通常位于 C:/users/YOURUSERNAME/.ssh (或~/.ssh)
  2. 粘贴您从上一部分下载的私钥。
  3. 打开 git bash,您需要打开 .bashrc文件,我首选的文本编辑器是 Notepad++,所以我在 bash 中给它起了一个别名 npp ,所以cd ~并在 bash 中输入:npp .bashrc
  4. 打开后.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
    
  5. 现在保存文件,然后 exit退出 git bash,然后再次打开它。如果它要求输入任何密码,请输入您的密码(可能不会,如果有,则意味着您之前已经设置过,所以您知道密码是什么)。

  6. 类型 ssh-add ~/.ssh/FILENAME OF YOUR SSH KEY

    • 输入您的密码
  7. 完成。您已将 SSH 私钥添加到 SSH 代理中。

将您的网站(文件)部署到您的主机上

  1. 现在输入 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>而且它不应该每次都要求您输入密码。
  2. 为了表示感谢,我将向您推荐我用于实现本节目的的两本指南。

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/

相关文章:

git - 如何将功能分支 merge 到 Git 中的分支开发?

git - 为什么 Git 在没有配置的情况下知道我的名字?

git - 在意外 git 添加文件后删除文件。

deployment - Symfony2 上的 "production"环境错误

javascript - 不同参数的axios GET请求被丢弃

java - 如何在 Git/EGit 上进行简单的还原工作?

jenkins - 当我添加Windows从节点时,我的jenkins中没有 "Launch agent via Java Web Start"选项

visual-studio-2010 - Visual Studio 2010 中 SQLCLR 项目中的计算列

javascript - mongolab 请求返回空查找结果

web - 如何对访问我的 bluemix 应用程序的用户进行身份验证?