一、安装配置开启SSH
# 安装 openssh 服务
sudo apt-get install openssh-server
# 启动 ssh 服务
sudo /etc/init.d/ssh start
# 若 firewalld 未安装,则先进行安装
sudo apt install firewalld
# 允许 tcp 22端口
sudo firewall-cmd --permanent --add-port=22/tcp
# 可选:允许ssh服务
sudo firewall-cmd --permanent --add-service=ssh
# reload 防火墙,应用规则
sudo systemctl reload firewalld
#验证22端口是否开启
sudo firewall-cmd --list-all
二、git 安装配置
- 安装git:sudo apt-get install git
- 安装完成后进行git配置,输入指令git config --global user.name "xxx"和 git config --global user.email “你的邮箱地址”
- 配置完成后,需要创建验证用的公钥,因为git是通过ssh的方式访问资源库的,所以需要在本地创建验证用的文件。使用命令ssh-keygen -C ‘you email address@gmail.com’ -t rsa(注意ssh与-keygen之间没有空格),会在用户目录~/.ssh/下建立相应的密钥文件。
- git clone git@github.com:Light-City/CPlusPlusThings.git //获取git资源
dujinwei@dujinwei-pc:~$ git config --global user.name "dujinwei"
dujinwei@dujinwei-pc:~$ git config --global user.email "1979159182@qq.com"
dujinwei@dujinwei-pc:~$ ssh-keygen -C '1979159182@qq.com' -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/dujinwei/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/dujinwei/.ssh/id_rsa
Your public key has been saved in /home/dujinwei/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:D78Ugebp+lxSYmcoCZLeAfjGZ3GMrr4HQj07+eWN4JY 1979159182@qq.com
The key's randomart image is:
+---[RSA 3072]----+
| .. o |
|. oo o . |
| o+.oo o . |
| o+=+o + o . |
|...+= o S = |
|. o+ . = O . |
| o .+ = = = |
| . .E = = . |
| .o. ..o . |
+----[SHA256]-----+
dujinwei@dujinwei-pc:~$ cd ~/.ssh/
dujinwei@dujinwei-pc:~/.ssh$ ls
id_rsa id_rsa.pub known_hosts
dujinwei@dujinwei-pc:~/.ssh$ gedit id_rsa.pub
三、git使用
(1)基本操作
- 指定用户名和邮箱
git config --global user.name "dujinwei"
git config --global user.email "1979159182@qq.com"
- 指定目录为git可管理的仓库
git init
- 添加文件或目录到仓库
git add STLDataStructure/
- 提交文件 -m 指定提交说明
git commit -m "2021-01-20 第一次上传"
- 查看工作区状态
git status
- 查看修改文件的内容详情
git diff
- 查看提交的历史记录
git log #查看详细记录
git log --pretty=oneline #查看简单记录
- 回退之前的版本 HEAD指向的版本就是当前版本
git reset --hard HEAD^ #回到上一个版本
#上上一个版本就是 HEAD^^
#上一百个版本 HEAD~100
git reset --hard 566b #指定commit版本号 回退到指定的版本
git reflog #查看每一次操作命令
git diff HEAD -- hello.cpp #查看工作区和版本库里面最新版本的区别
- 撤销更改
git checkout -- hello.txt #撤销本地工作区的更改 不推荐
git restore hello.txt #撤销本地工作区的更改 新版本git
git restore --staged hello.txt #撤销缓冲区的更改 新版本git
- 删除文件 删除了本地工作区文件
(2)远程仓库
- 生成 id_rsa 和 id_rsa.pub 公钥和私钥对文件
ssh-keygen -t rsa -C "1979159182@qq.com"
- 添加本地仓库到远程仓库 (首先在github上建一个仓库)
git remote rm origin #删除
git remote add origin git@github.com:jermydu/STLDataStructure.git #添加
git push -u origin master #把内容推送到远程仓库,第一次推送
git push -f origin master #推送最新修改-f 强制覆盖
- 从远程仓库克隆到本地
git clone git@github.com:jermydu/CppTemplateTutorial.git
- 服务端配置
#进入root
sudo bash
#安装git
apt-get install git
#安装ssh
apt-get install openssh-server openssh-client
#新建git用户
adduser dujinwei
#新建仓库
git init -bare /srv/dujinwei.git
#给用户授权git仓库权限
chown -R dujinwei:dujinwei /srv/dujinwei.git/
- 客户端配置
#安装git,本地新建文件夹作为本地目录
#clone仓库到本地
git dujinwei@192.168.43.230:/srv/dujinwei.git
三、vscode远程连接linux
- 安装VSCode插件Remote - SSH
- 生成ssh密钥
(1)打开Windows PowerShell (管理员)
(2)输入 ssh-keygen.exe -t rsa
PS C:\Users\wangkun> ssh-keygen.exe -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\wangkun/.ssh/id_rsa):
Created directory 'C:\Users\wangkun/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\wangkun/.ssh/id_rsa.
Your public key has been saved in C:\Users\wangkun/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:WLV3969PxPSp6YaOLInkUetcambNCwxtWPGHnL5cIrQ wangkun@wangkun-pc
The key's randomart image is:
+---[RSA 2048]----+
| . . |
| +.o. |
| o.=... . o|
| =+o .. . ++|
| ooESo . .=|
| o+.o.+ o..|
| o =o*o .o o|
| o Xoo.... o |
| + .+o......|
+----[SHA256]-----+
PS C:\Users\wangkun>
- vscode 打开远程资源管理器点击配置,配置完毕之后,「远程资源管理器」中会显示你已经配置的服务器
Host dujinwei-linux #远程连接名 随便起
HostName 192.168.0.109 #远程主机IP地址
User dujinwei #远程主机登录用户名
- 打开远程linux服务器添加认证秘钥,把刚才打开的id_rsa.pub里边的内容追加到authorized_keys里边
dujinwei@dujinwei-pc:~$ cd .ssh/
dujinwei@dujinwei-pc:~/.ssh$ ls
id_rsa id_rsa.pub known_hosts
dujinwei@dujinwei-pc:~/.ssh$ vim authorized_keys
dujinwei@dujinwei-pc:~/.ssh$ cat authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDnsuUrTJT+4zR6azrbc5NSqj9VWP/3aN1M62TQfm3tLTqxBiF9rtI+3B7M8IenDH0GwiBk2Kk8n0zB0wNwJd0qt9EAVfT+FVZxuBHoOvzau1U/mp7tZsxjW/C6rUulMMz6XlD4Ym7LHwXE+nziECJziZVoGqwT1rRGl2OgN9grTtYZ4eOXEfBIUrXkpy08w3LMfveVlY+SaN+PZ9aWklGNVRLYQhiX6cbuVHAoIs0U81wWfaayuyHvXq3XqjON/RxPTTVuTiNimP/4W0KCMOkz5ecoJ/isgVAZw9rwg35kASERH4Rmv+Xvw7LxVhDVSBhvviDZKIwJhwBt/K3chZp1 wangkun@wangkun-pc