无法联网的Linux服务器端和电脑本地git同步管理

89 阅读2分钟

代码备份很重要,一般来说,我们可以直接服务器连接GitHub或其他代码托管平台进行代码的版本管理及备份,但有时我们的工作服务器无法联网,此时为了方便备份管理,可以将电脑本地和Linux服务器端的git仓库进行同步。具体教程如下:

  1. 在服务器和本地生成ssh密钥对(如果已经有可跳过)

    1. 生成的密钥对可以通过ls ~/.ssh/查看
  2. 将本地 SSH 公钥添加到服务器的授权密钥列表中

    1. 在 Mac 本地终端中,使用以下命令将公钥(默认是~/.ssh/id_rsa.pub)内容复制到剪贴板:pbcopy < ~/.ssh/id_rsa.pub

      • cat ~/.ssh/id_rsa.pub后复制
    2. 在服务器端,将公钥添加到~/.ssh/authorized_keys文件中。如果~/.ssh目录不存在,需要先创建它(mkdir -p ~/.ssh),然后使用以下命令将公钥内容添加到authorized_keys文件中:

  3. 初始化服务器上的git仓库(如果还没有初始化的话)

    1. cd target_folder
    2. git init
    3. git add .
    4. git commit -m "initial commit"
  4. 在本地克隆服务器上的git仓库

    1. 进入希望放置该仓库的位置
    2. git clone username@server_ip:server_folder
    3. 可以通过git remote -v来检查远程仓库设置
  5. 设置完毕后就可以在本地修改并通过push和pull命令与远程仓库交互啦

    1. git push origin master
    2. git pull origin master
  6. 建议在每次编辑前,先在服务器和本地端git status检查


此外,为了使登陆更简便,可以

  1. 在跳板机和目标服务器中都添加本地密钥(即将本地的公钥添加到跳板机和目标服务器的~/.ssh/authorized_keys文件中(如上所述)

  2. 在本地修改~/.ssh/config文件如下:

    1. Host bastion //any name is ok
          HostName [your jumphost ip]
          User [your user name]
      Host server //any name is ok
          HostName [your target server ip]
          User [your user name]
          ProxyCommand ssh -q -W %h:%p bastion
      
  3. 此时可以通过ssh bastionssh server来直接连接对应的服务器,克隆服务器端的git仓库时,可以直接git clone server:server_folder