【项目实战】基于Git实现SSH免密登录

一、为什么要实现SSH免密登录

在项目实战中,实现SSH免密登录可以大大提高远程服务器管理的效率和安全性。

需要注意的是,为了确保安全,建议仅将免密登录方式授权给可信任的用户和服务器。

二、基于Git实现SSH免密登录的步骤

为了实现SSH免密登录,需要在本地和远程服务器之间建立一个SSH密钥对,以下是一个基于Git实现SSH免密登录的具体步骤步骤,注意:以下步骤适用于大多数情况,但具体实现可能因操作系统、Git版本和远程服务器设置而有所不同。

2.1 在本地生成SSH密钥对

在本地计算机上生成SSH密钥对,如果没有密钥对则生成一个新的。
在Windows上可以使用Git Bash或PuTTY,在Mac或Linux上则可以直接使用终端。

在命令行中输入以下命令,即生成密钥对的命令如下:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

上述命令会生成一对密钥,其中

参数 参数说明
-t rsa 表示使用RSA算法生成密钥对
-b 4096 表示密钥长度为4096位
-C “[email protected] 表示密钥对关联的邮箱地址

执行完毕后,会在用户主目录下生成一个.ssh目录,并在其中生成公钥和私钥文件。

2.1.1 公钥文件

公钥文件名为id_rsa.pub
公钥(以.pub结尾)需要上传到远程服务器

2.1.2 私钥文件

私钥文件名为id_rsa
私钥则保留在本地计算机上。
默认情况下,私钥文件是加密的,需要使用ssh-keygen -e id_rsa命令将其转换为可读的格式。

2.2 上传公钥到远程服务器

( 即通过git命令将本地公钥拷贝到远程服务器)

在命令行中输入以下命令,将公钥上传到远程服务器,该命令会将本地的公钥拷贝到远程服务器,并将其添加到用户的authorized_keys文件中。

ssh-copy-id username@remote_server_ip
ssh-copy-id -i /.ssh/id_rsa.pub username@remote_server_ip

其中

参数 参数说明
username 是你在远程服务器上的用户名
remote_server_ip 远程服务器的IP地址

2.3 测试SSH免密登录

现在可以尝试使用SSH免密登录远程服务器。在Git Bash(本地命令行)或终端中输入以下命令:

ssh username@remote_server_ip

如果一切顺利,应该可以直接登录到远程服务器,不再需要输入密码。
如果一切正常,将会直接登录到远程服务器,而无需再输入密码。

2.4 配置Git使用SSH免密登录

最后,为了让Git能够使用SSH免密登录远程服务器,需要配置Git使用正确的SSH路径。
在Git Bash或终端中输入以下命令:

git config --global core.sshCommand "ssh -F /dev/null"

以上就是基于Git实现SSH免密登录的步骤。

猜你喜欢

转载自blog.csdn.net/wstever/article/details/129978382