技术笔记
🗒️笔记-SSH-Git
00 分钟
2023-7-3
2023-9-30
type
status
date
slug
summary
tags
category
icon
password

SSH

  • Secure SHell,安全壳协议,主要用于通过命令行界面远程登录和操作计算机(服务器)。
  • 是计网学的OSI七层模型中的应用层协议,通常基于TCP/SCTP
  • IANA将22端口分配给了SSH协议作为默认端口
  • SSH使用通信的两端使用非对称加密的方式(公钥加密,私钥解密)加密网络连接,然后使用密码对用户进行身份验证。不同于Telnet使用明文的方式管理(容易被抓包)

具体操作(当收到密钥时)

  1. 在被连接的电脑上(服务器上)安装openssh-server,在用来连接的电脑上安装openssh-client
  1. 在client的命令行中使用OpenSSH连接到远程服务器
    1. 当需要使用对方发来的id_rsa进行连接时,需要将id_rsa.pub删除(以便在cmd上可以连接);将config清空,以便在vscode上通过远程资源管理器打开
      1. notion image
    1. 一般情况下,id_rsa为本机专属的rsa,其他的rsa应该使用其特别的名字。当有多个id_rsa需要管理的时候,可以在config文件中进行管理,具体如下:

      具体操作(将本机添加到远程)

      这是企业管理中的常规操作
      1. 【本地】先在本地生成rsa_id.pub与rsa_id一对密钥
        1. 【本地】修改config中的内容,使得能够通过ssh指令连接到服务器,增加如下:
          1. 【本地】修改config的权限
            1. SSH客户端因为不安全的密钥文件权限而拒绝连接。SSH要求私钥文件(如id_rsa)的权限仅限于所有者,并且不能对其他用户开放。因此,需要调整id_rsa文件的权限。
              以下命令会:
              • 使用/inheritance:r移除继承权限。
              • 使用/remove:g移除特定用户或组的权限。
              • 使用/grant:r仅给当前用户(您)读取(R)权限。
          1. 【本地】将rsa_id.pub中的内容告知管理员
          1. 【远程】找到authorized_keys文件(在“[服务器上的用户名]/.ssh”文件夹里面),如果没有的话就创建一个名为authorized_keys的文件。并为其设置适当的权限:
            1. 【远程】管理员将成员发过来的rsa_id.pub中的内容复制到authorized_keys文件里,并保存authorized_keys文件即可
              1. notion image

            Git

            常用指令

            基本操作
            克隆仓库:git clone 地址
            在根目录添加远程仓库:git remote add 远程仓库名称 主仓库地址
            查看远程仓库的地址:git remote -v
            查看本地分支和状态:git branch
            查看本地和远程全部分支:git branch -a (remotes的为你的远程仓库origin下的分支)
            查看当前分支和状态:git status
            新建分支并切换:git checkout -b 分支名字
            切换分支:git checkout 分支名字
            开发完成后的提交
            将提交的代码放入暂存区stash:git stash save "save message"
            下载远端代码代码:git pull 远端分支 本地分支
            查看修改:git diff
            选择要提交的文件:git add .
            填充提交内容:git commit -m "feat:add UserManagement"
            Commit Message 格式
            feat:新功能(feature) fix:修补bug docs:文档(documentation) Style: 格式(不影响代码运行的变动) Refactor:重构(即不是新增功能,也不是修改bug的代码变动) Test:增加测试 Chore:构建过程或辅助工具的变动
            将内容提交至远端:git push origin 分支名称

            VScode上开发

            使用该模式,在已经init/clone来的文件夹中编辑,使用终端来充当git bash,从而输入相应的命令。
            notion image

            实用技巧

            • 向README.md中嵌入图片
              • 将图片上传至仓库中,复制图片的链接,再在markdown中使用以下语法完成图片的插入

            Github Flow

            团队开发

            1. 组长建一个组织,组织里新建一个项目,项目中只有main分支
              1. notion image
            1. 组员Fork组长的仓库到本地,在本地进行开发
              1. notion image
            1. 正式开发前,先在网页上点击Sync fork按钮,同步队友的开发(或者直接git pull拉取)
            1. 完成开发后,使用以下三步将代码上传到自己的仓库
              1. 必要时,可以使用git remote -v检查一下自己的分支
            1. 之后,在自己的代码仓库中Pull requestNew pull request 创建新的PR
              1. notion image
            1. 告诉组长整合就好啦~

            References

             

            评论
            Loading...