Git SSH

今天要来介绍一些SSH的操作及相关指令,一般我们要连结到远端server通常都要透过git push origin master,这种方式需要登入帐密,且容易被骇客盗用,也较为複杂,而SSH就可以避免这些问题。

SSH机制:

1.Local端也就是我们会有两把key,分别为public key, private key,而我们将public key传至server端,所以server端会有一把public key。

2.当Local端发起SSH连接以后,server会回传一段random message给Local端。

3.而我们在收到message后,利用private对message去做加密,以后再回传给远端,远端再用public key去解密,如果message吻合,则完成SSH连接。

详细流程如下图:

http://img2.58codes.com/2024/20126182Kjm7zbTTsL.png

而我们在Git实际操作一下。

1.cd ~/.ssh : 首先先检查ssh key是否存在

如果存在直接通过 ssh-key =>ssh-keygen来产生ssh。

如果不存在,我们就利用ssh-keygen -t rsa -C "your_email@youremail.com":产生一个新的SSH key。

此时去存在ssh key的目录(cd .ssh/)可发现有两个file,一个为id_rsa(private key)、另一个为id_rsa.pub(public key)。

2.再来,我们将local端所产生的public key传至远端server,ssh-copy-id -i ~/.ssh/mykey user@host:可将local端的public key 传至指定的server端,这时候可利用ssh (远端server),发现已经不需再次输入密码登入了。

http://img2.58codes.com/2024/20126182JiSsu9tXJP.png

如何将SSH public key传至远端github呢?

1.首先先进入setting,里面有SSH and GPG Key的option,点选进去可以去new 一个 key。

2.接着more id_rsa.pub获取local public key的资料并贴到github new SSH key的地方。

http://img2.58codes.com/2024/201261820gnm6fMWOb.png

但此时再次git push origin master,发现仍然需要输入密码,是因为我们这个local仓库是经由https git clone来的,所以我们仓库预设是由Https做验证,他不会走SSH。

http://img2.58codes.com/2024/20126182shewtn0lMR.png

3.我们可以利用vim .git/config 更改资料中url,至github点选clone地方将 clone with https 改为 clone with ssh并将其url 覆盖上去即可。

http://img2.58codes.com/2024/20126182jtmUAGd8oV.png


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章