SSH key的生成及使用

SSH key的生成及使用

SSH key生成及其使用 一、检查是否已经存在ssh key

通常sshkey会默认生成在用户家目录下,所以查看家目录下是否存在.ssh 文件夹,以及是否存在相关目录就行。(~/.ssh/id_rsa)

二、生成key

在控制台输入: 

ssh-keygen -t rsa 

Note: -t 的意思是选择kye的type。分别有 RSA 和 DSA 两种。具体请自行百度 

控制台输出如下: 

Generating public/private rsa key pair. 

Enter file in which to save the key (/root/.ssh/id_rsa): 

Created directory ‘/root/.ssh’. 

Enter passphrase (empty for no passphrase): 

Enter same passphrase again: 

Your identification has been saved in /root/.ssh/id_rsa. 

Your public key has been saved in /root/.ssh/id_rsa.pub. 

(为了避免每次进行ssh连接时都需要输入passphrase,这里可以不用输入passphrase。)

现在你的私钥被放在了~/.ssh/id_rsa 这个文件里,而公钥被放在了 ~/.ssh/id_rsa.pub 这个文件里。

三、使用ssh key

使用ssh key的目的是使得两台机器之间建立互信,从其中一台登陆到另一台时不需要密码。具体方式如下:

1、先在主机A上创建密钥对

[java]view plaincopy

ssh-keygen -t rsa  

这时可以在主机A上看到生成的秘钥~/.ssh/id_rsa 和公钥 ~/.ssh/ id_rsa.pub

2、把主机A的公钥放在主机B上

直接去github上添加sshkey  ----------

-------------.................................................................................................

扩展: gitgub常见操作和常见错误!

如果输入$ ssh -T[email protected]

    出现错误提示:Permission denied (publickey).因为新生成的key不能加入ssh就会导致连接不上github。

    解决办法如下:

    1、先输入$ ssh-agent,再输入$ ssh-add ~/.ssh/id_key,这样就可以了。

    2、如果还是不行的话,输入ssh-add ~/.ssh/id_key 命令后出现报错Could not open a connection to your authentication agent.解决方法是key用Git Gui的ssh工具生成,这样生成的时候key就直接保存在ssh中了,不需要再ssh-add命令加入了,其它的user,token等配置都用命令行来做。

    3、最好检查一下在你复制id_rsa.pub文件的内容时有没有产生多余的空格或空行,有些编辑器会帮你添加这些的。

    如果输入$ git push origin master

    提示出错信息:error:failed to push som refs to .......

    解决办法如下:

    1、先输入$ git pull origin master //先把远程服务器github上面的文件拉下来

    2、再输入$ git push origin master

    使用git在本地创建一个项目的过程

    $ makdir ~/hello-world    //创建一个项目hello-world

    $ cd ~/hello-world       //打开这个项目

    $ git init             //初始化 

    $ touch README

    $ git add README        //更新README文件

    $ git commit -m 'first commit'     //提交更新,并注释信息“first commit”

$ git remote add origin[email protected]:dedsf/hello-world.git//连接远程github项目

    $ git push -u origin master     //将本地项目更新到github项目上去



我是大鱼吃小鱼 || 易冬英 , 前端小渣渣一枚,如有不对,欢迎各位大佬批评指正!

猜你喜欢

转载自blog.csdn.net/qq_37210523/article/details/80994002