无论是使用github类似的开源平台还是搭建的git服务器来团队协作开发,我们总是需要使用本地ssh密钥来建立连接,如果要使用ssh服务linux下我们还需要通过终端安装ssh并且开启ssh服务
一.关于ssh密钥
首先应该检查下是否存在ssh密钥,
终端键入ls -ah
查看是否存在.ssh文件,不存在则我们需要生成ssh密钥:
终端键入ssh-keygen -t rsa -C 'you_email@email.com'
回车之后下面是设置的密码,不设置回车即可。即:
Enter file in which to save the key (/home/.ssh/id_rsa): 【按回车】 |
然后将.ssh/id_rsa.pub添加进去你github中ssh中即可
通过sss -T git@github.com
检查连接是否建立成功,出现下面信息则提示已经建立连接喽
Hi username! You've successfully authenticated, but GitHub does not provide shell access. |
然后回去观察你的github ssh and GpG keys的对应的ssh小钥匙灰色已经变成了绿色
二.关于ssh服务
对于linux下安装ssh服务相关,这里我做了简单的整理:
1.查看ssh服务的状态
输入sudo service sshd status
:
如果出现No such file or directory相关提示,说明还没有安装ssh服务
如果提示Active:inactive(dead),则已经安装了ssh服务,但是没有开启
2.安装ssh服务
因为linux发行版众多,有一些不同的安装方式
redhat,fedora,centos等系列linux发行版可以尝试:sudo yum install sshd
或者sudo yum install openssh-server
debian,ubuntu,linux mint等系列的linux发行版尝试:sudo apt-get install sshd
或者sudo apt-get install openssh-server
3.开启ssh服务
在终端输入sudo service sshd start
提示Active: active (running) since Sun 2018-10-5 13:43:11 CST; 15s ago则说明ssh服务已经启动成功
4.卸载ssh服务
和安装对应,我们可以使用sudo yum remove sshd
和sudo apt-get -purge remove sshd
来卸载ssh服务
三.解决问题(Permission denied)
因为误通过sudo命令生成ssh密钥,导致ssh密钥写入了/root系统文件,而引发后来一系列问题
丢失了截图,在一次试错后:
其实我安装git后已经设置了身份的,通过git config --list
查看
于是我很自然的先搁置这个问题,下面是Permission denied的报错:
发现是权限问题,于是我反复检查,才发现自己误用了sudo命令,将ssh密钥写入了系统盘/root,导致权限不足,无法与远程建立连接。