type
status
date
slug
summary
tags
category
icon
password
SSH
- Secure SHell,安全壳协议,主要用于通过命令行界面远程登录和操作计算机(服务器)。
- 是计网学的OSI七层模型中的应用层协议,通常基于TCP/SCTP
- IANA将22端口分配给了SSH协议作为默认端口
- SSH使用通信的两端使用非对称加密的方式(公钥加密,私钥解密)加密网络连接,然后使用密码对用户进行身份验证。不同于Telnet使用明文的方式管理(容易被抓包)
具体操作(当收到密钥时)
- 在被连接的电脑上(服务器上)安装openssh-server,在用来连接的电脑上安装openssh-client
- 在client的命令行中使用OpenSSH连接到远程服务器
- 当需要使用对方发来的id_rsa进行连接时,需要将id_rsa.pub删除(以便在cmd上可以连接);将config清空,以便在vscode上通过远程资源管理器打开
- 一般情况下,id_rsa为本机专属的rsa,其他的rsa应该使用其特别的名字。当有多个id_rsa需要管理的时候,可以在config文件中进行管理,具体如下:
具体操作(将本机添加到远程)
这是企业管理中的常规操作
- 【本地】先在本地生成rsa_id.pub与rsa_id一对密钥
- 【本地】修改config中的内容,使得能够通过ssh指令连接到服务器,增加如下:
- 【本地】修改config的权限
- 使用
/inheritance:r
移除继承权限。 - 使用
/remove:g
移除特定用户或组的权限。 - 使用
/grant:r
仅给当前用户(您)读取(R)权限。
SSH客户端因为不安全的密钥文件权限而拒绝连接。SSH要求私钥文件(如id_rsa
)的权限仅限于所有者,并且不能对其他用户开放。因此,需要调整id_rsa
文件的权限。以下命令会:
- 【本地】将rsa_id.pub中的内容告知管理员
- 【远程】找到authorized_keys文件(在“[服务器上的用户名]/.ssh”文件夹里面),如果没有的话就创建一个名为authorized_keys的文件。并为其设置适当的权限:
- 【远程】管理员将成员发过来的rsa_id.pub中的内容复制到authorized_keys文件里,并保存authorized_keys文件即可
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,从而输入相应的命令。
实用技巧
- 向README.md中嵌入图片
将图片上传至仓库中,复制图片的链接,再在markdown中使用以下语法完成图片的插入
Github Flow
团队开发
- 组长建一个组织,组织里新建一个项目,项目中只有main分支
- 组员Fork组长的仓库到本地,在本地进行开发
- 正式开发前,先在网页上点击
Sync fork
按钮,同步队友的开发(或者直接git pull
拉取)
- 完成开发后,使用以下三步将代码上传到自己的仓库
必要时,可以使用
git remote -v
检查一下自己的分支- 之后,在自己的代码仓库中
Pull request
→New pull request
创建新的PR
- 告诉组长整合就好啦~
References
- 作者:王大卫
- 链接:https://tangly1024.com/article/note:ssh-git
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。