今天因为一些原因,需要往github的仓库里上传一些文件。由于最近在Ubuntu环境里编程,就想尝试一下使用linux下的Git,并把其中的一些问题记录在这里。
1、首先我的系统中已经安装好了git和ssh。所以省去了安装这个步骤,如果你还没有安装 可以尝试以下两个命令
sudo apt-get install git
sudo apt-get install ssh
2、但是,没有绑定过账号,所以使用git连接github第一步就是先绑定自己的GitHub账号
(神马!?你还没有账号,那先去https://github.com/ 上面注册一下吧)
git config --golbal user.name ni_de_yong_hu_ming
git config --global user.email ni_de_you_xiang@163.com
你没看错,
就是设置全局 user.name 为 ni_de_yong_hu_ming(你的用户名)
和设置全局 user.email 为 ni_de_you_xiang@163.com(你的邮箱)
设置完成之后就可以用以下命令生成你的SSH Keys啦
ssh-keygen -t rsa -C ni_de_you_xiang@163.com
这行命令会生成id_rsa 和id_rsa.pub 两个文件(也有可能让你自己输入名字),然后填入你的SSH key密码,这个密码一定要记住,因为这个密码在你提交代码到Github时会用到
界面显示这样就是成功了
Your identification has been saved in /home/xxx/.ssh/id_rsa .
Your public key has been saved in /home/xxx/.ssh/id_rsa.pub.
The key fingerprint is: ......
生成SSH KEY之后,添加密钥到ssh:
ssh-add 文件名,需要之前输入密码.
回到github网站上,进入右上角的 Settings,
左边选择SSH and GPG keys,在SSH keys选项卡中 点击右边new SSH key title是你的ssh key的名字,可以取你喜欢的名字,在 key 下面粘贴你生成的id_rsa.pub文件下的全部内容。(注意使用vim或者其他的文本编辑器打开,防止编码错误) 点击Add SSH key 就添加完成了
3、再次回到Ubuntu系统中,终端下输入
ssh git@github.com
来判断是否连接成功。
然而我在Ubuntu系统下失败了出现了这个错误
Permission denied (publickey).
发现是ssh的配置中没有允许公钥,我们可以在ssh的配置文件中打开这个开关 地址如下
/etc/ssh/sshd_config
在这个文件中,我找到了 #PasswordAuthentication yes 此时的状态为屏蔽状态,去掉前面的‘#’就可以使用了
PasswordAuthentication yes
去掉#后 重启ssh
再次运行 ssh git@github.com 就可以发现连接成功了
终端显示为(虽然他看起来像是失败了,但是确实是成功了 )
PTY allocation request failed on channel 0
Hi ni_de_yong_hu_ming! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.
如果你看他不爽,可以使用 ssh -T git@github.com 会显示如下信息(其实是一样的)
Hi ni_de_yong_hu_ming! You've successfully authenticated, but GitHub does not provide shell access.
今天电脑有点卡,剩下的下次在写吧(逃……)