远程服务器开发

git 使用新版本

由于远程服务器开发时,为了保证环境的安全问题,会对用户的空间进行隔离,所以一般用户没有超级权限。对此安全git,可以采用下载源码,对源码编译的方式来进行。
下载新版本的git压缩文件

wget --no-check-certificate https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.38.5.tar.gz
tar -zxf git-2.9.5.tar.gz
cd git-2.9.5

执行下面命令进行编译安装

检查环境,配置安装路径

./configure --prefix=/home/fengweidong/install/git-2.9.5

这一步会设置安全路径,很重要,如果使用默认的安装路径,它会在根目录下安全,往往这个路径是需要超级权限的,所以一定要换安装目录。

编译安装

make && make install

编辑配置信息,添加到系统环境变量

vim ~/.bashrc

文件末尾添加如下内容:

export PATH="/path_to_git/git/bin:$PATH"

使配置生效

source ~/.bashrc

查看效果测试是否成功

git version

tmp文件夹不可写问题

由于遇到了tmp文件夹不可写的问题,所以修改tmp文件夹的默认路径
~/.bashrc中添加,之后source ~/.bashrc

export TMPDIR="/home/fengweidong/tmp"
export TEMP="/home/fengweidong/tmp"
export TMP="/home/fengweidong/tmp"

查看tmp文件夹所在位置

echo ${TMPDIR:-/tmp}

重新开一个终端,原终端不会应用这个修改。

Github:ssh 协议下载

官方配置教程:生成密钥
官方配置教程:密钥添加到git
配置公钥

ssh-keygen -t ed25519 -C "von7541@outlook.com"

将生成的公钥放在github中。
[图片]

测试ssh连接

ssh -T git@github.com

您可能会看到类似如下的警告(GitHub官方指南):

The authenticity of host ‘github.com (IP ADDRESS)’ can’t be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
Are you sure you want to continue connecting (yes/no)?
我出现的提示:
The authenticity of host ‘github.com (20.205.243.166)’ can’t be established.
ECDSA key fingerprint is SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM.
ECDSA key fingerprint is MD5:7b:99:81:1e:4c:91:a5:0d:5a:2e:2e:80:13:3f:24:ca.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘github.com,20.205.243.166’ (ECDSA) to the list of known hosts.
Hi Von-github! You’ve successfully authenticated, but GitHub does not provide shell access.
这个消息意味着首次尝试SSH连接到 GitHub 时,本地计算机没有存储 GitHub 的主机密钥。
SSH在首次连接到一个新的主机时会进行主机密钥验证,以确保你正真连接到了预期的主机,而不是中间人攻击。这个过程使用主机密钥指纹来验证主机的身份。当你第一次连接到一个远程主机时,SSH客户端会检查浏览器指纹是否存在于你的known_hosts文件中。如果known_hosts文件中没有匹配的指纹,则会显示给你看。
在消息中,显示了两个主机密钥的指纹,一个是基于SHA256算法的,另一个是基于MD5算法的。这些指纹是用来验证主机身份的一种方式。
如果你之前没有连接过 GitHub,而且你确定你没有手动添加过这些密钥指纹到你的known_hosts文件中,那么这是正常的行为。这意味着你是第一次连接到 GitHub,且 SSH 客户端无法验证提供的密钥指纹。
在这种情况下,你需要自己核对并确认提供的指纹与 GitHub 官方提供的指纹是否匹配。你可以在 GitHub 官方网站或其他可信任来源上找到正确的指纹。如果指纹匹配,你可以接受该密钥并将其添加到你的known_hosts文件中,以便将来的连接不再出现该警告。
如果你确认指纹匹配,你可以继续并输入"Yes"来接受该主机密钥并将其添加到你的已知主机列表中。这样,将来你连接到相同的主机时就不会再次出现该警告。

验证所看到消息中的指纹是否与 GitHub 的公钥指纹匹配。 如果是,则键入 yes:
这里出现的警告是不完全相同的,因为GitHub的公钥指纹有3-4种,大概上句的超链可见。与其中之一匹配即可。

将hhtps协议改为ssh协议,这样通过在git clone时,会将https的协议转换为ssh协议。

git config --global url.git@github.com:.insteadOf https://github.com/

配置远程服务器ssh连接

在上述过程中,centos生成了一对私钥和公钥。将私钥下载到本地电脑的.ssh文件夹中,然后配置vscode的连接设置即可。这里需要将公钥内容复制到authorized_keys中。以下是对该操作的说明。

在 CentOS 系统中,OpenSSH 的公钥文件位置通常是在用户的家目录下的 .ssh 文件夹中。
具体来说,公钥文件通常是 id_rsa.pub 或 authorized_keys。这些文件中存储的是你的公钥信息,用于身份验证和安全连接。
以下是在 CentOS 上默认的公钥文件位置:

  1. 全局公钥文件: /etc/ssh/ssh_host_rsa_key.pub 或 /etc/ssh/ssh_host_ecdsa_key.pub。这些文件存储了服务器的公钥信息,用于远程用户的验证。
  2. 用户级公钥文件: ~/.ssh/id_rsa.pub 或 ~/.ssh/authorized_keys。这些文件是每个用户存储其公钥的位置。id_rsa.pub 是用户的公钥文件,而 authorized_keys 文件是存储所有可用于身份验证的用户公钥的文件。

请注意,~ 表示当前用户的家目录,例如 /home/username 或 /root(对于超级用户)。
如果你要配置 SSH 使用的公钥文件,你可以将你的公钥内容添加到 authorized_keys 文件中,或者将公钥文件拷贝到正确的位置。确保你拥有正确的权限和正确格式的公钥,并且设置了适当的访问权限(通常是 600 或 644)以确保安全性。
要在CentOS上配置SSH使用特定用户的公钥文件,你需要按照以下步骤进行操作:

  1. 首先,登录到CentOS服务器上的目标用户账户。你可以使用SSH连接或在服务器本地登录。
  2. 在用户的家目录下(通常是/home/username),创建一个.ssh文件夹(如果尚未存在):mkdir ~/.ssh
  3. 进入.ssh文件夹:cd ~/.ssh
  4. 在.ssh文件夹中创建一个名为authorized_keys的文件(如果尚未存在)并编辑它:vi authorized_keys
  5. 将你的公钥粘贴到authorized_keys文件中。每个公钥应该占据一行。
  6. 保存文件并关闭编辑器。
  7. 确保authorized_keys的权限正确设置为600(只有用户具有读和写权限):chmod 600 authorized_keys
  8. 最后,退出并重启SSH服务以使更改生效:sudo service ssh restart
    现在,当你使用该用户通过SSH登录时,服务器将使用authorized_keys文件中的公钥进行身份验证。请确保你的公钥格式正确,每个公钥占据一行,并且没有任何额外的空格或换行符。