`
king_tt
  • 浏览: 2110242 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

github设置添加SSH

 
阅读更多

很多朋友在用github管理项目的时候,都是直接使用https url克隆到本地,当然也有有些人使用 SSH url 克隆到本地。然而,为什么绝大多数人会使用https url克隆呢?

这是因为,使用https url克隆对初学者来说会比较方便,复制https url 然后到 git Bash 里面直接用clone命令克隆到本地就好了。而使用 SSH url 克隆却需要在克隆之前先配置和添加好 SSH key 。

因此,如果你想要使用 SSH url 克隆的话,你必须是这个项目的拥有者。否则你是无法添加 SSH key 的。

https 和 SSH 的区别:

1、前者可以随意克隆github上的项目,而不管是谁的;而后者则是你必须是你要克隆的项目的拥有者或管理员,且需要先添加 SSH key ,否则无法克隆。

2、https url 在push的时候是需要验证用户名和密码的;而 SSH 在push的时候,是不需要输入用户名的,如果配置SSH key的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码的。

在 github 上添加 SSH key 的步骤:

1、首先需要检查你电脑是否已经有 SSH key

运行 git Bash 客户端,输入如下代码:

$ cd ~/.ssh
$ ls

这两个命令就是检查是否已经存在 id_rsa.pub 或 id_dsa.pub 文件,如果文件已经存在,那么你可以跳过步骤2,直接进入步骤3。

2、创建一个 SSH key

$ ssh-keygen -t rsa -C "your_email@example.com"

代码参数含义:

-t 指定密钥类型,默认是 rsa ,可以省略。
-C 设置注释文字,比如邮箱。
-f 指定密钥文件存储文件名。

以上代码省略了 -f 参数,因此,运行上面那条命令后会让你输入一个文件名,用于保存刚才生成的 SSH key 代码,如:

Generating public/private rsa key pair.
# Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): [Press enter]

当然,你也可以不输入文件名,使用默认文件名(推荐),那么就会生成 id_rsa 和 id_rsa.pub 两个秘钥文件。

接着又会提示你输入两次密码(该密码是你push文件的时候要输入的密码,而不是github管理者的密码),

当然,你也可以不输入密码,直接按回车。那么push的时候就不需要输入密码,直接提交到github上了,如:

Enter passphrase (empty for no passphrase): 
# Enter same passphrase again:

接下来,就会显示如下代码提示,如:

Your identification has been saved in /c/Users/you/.ssh/id_rsa.
# Your public key has been saved in /c/Users/you/.ssh/id_rsa.pub.
# The key fingerprint is:
# 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com

当你看到上面这段代码的收,那就说明,你的 SSH key 已经创建成功,你只需要添加到github的SSH key上就可以了。

3、添加你的 SSH key 到 github上面去

a、首先你需要拷贝 id_rsa.pub 文件的内容,你可以用编辑器打开文件复制,也可以用git命令复制该文件的内容,如:

$ clip < ~/.ssh/id_rsa.pub

b、登录你的github账号,从又上角的设置(Account Settings)进入,然后点击菜单栏的 SSH key 进入页面添加 SSH key。

c、点击 Add SSH key 按钮添加一个 SSH key 。把你复制的 SSH key 代码粘贴到 key 所对应的输入框中,记得 SSH key 代码的前后不要留有空格或者回车。当然,上面的 Title 所对应的输入框你也可以输入一个该 SSH key 显示在 github 上的一个别名。默认的会使用你的邮件名称。

4、测试一下该SSH key

在git Bash 中输入以下代码

$ ssh -T git@github.com

当你输入以上代码时,会有一段警告代码,如:

The authenticity of host 'github.com (207.97.227.239)' can't be established.
# RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
# Are you sure you want to continue connecting (yes/no)?

这是正常的,你输入 yes 回车既可。如果你创建 SSH key 的时候设置了密码,接下来就会提示你输入密码,如:

Enter passphrase for key '/c/Users/Administrator/.ssh/id_rsa':

当然如果你密码输错了,会再要求你输入,知道对了为止。

注意:输入密码时如果输错一个字就会不正确,使用删除键是无法更正的。

密码正确后你会看到下面这段话,如:

Hi username! You've successfully authenticated, but GitHub does not
# provide shell access.

如果用户名是正确的,你已经成功设置SSH密钥。如果你看到 “access denied” ,者表示拒绝访问,那么你就需要使用 https 去访问,而不是 SSH 。

如果你有什么疑问或指正,请留言。

产考文档:https://help.github.com/articles/generating-ssh-keys

分享到:
评论

相关推荐

    github帐号添加SSH keys

    该文档适用于小白使用,讲述了在遇到问题时,如何添加SSH key。

    feixiangsnail.github.io

    feixiangsnail.github.io 一 、设置git: 设置git的user name和email: $ git config --global user.name "xxx" ...4.在github上添加ssh密钥,这要添加的是“id_rsa.pub”里面的公钥。 打开 注意在这里由于

    github-ssh-key-setup

    快速为Github设置SSH密钥 1.克隆此项目 git clone https://github.com/martinandersen3d/github-ssh-key-setup.git 2.运行脚本 cd github-ssh-key-setup/ ./github-ssh-setup.sh 3.在以下位置添加密钥: 示范

    ssh-deploy:通过ssh通过rsync部署代码的GitHub操作

    该GitHub Action使用GITHUB_WORKSPACE通过ssh通过rsync将GITHUB_WORKSPACE中的特定目录部署到服务器上的文件夹中。 此操作通常会遵循构建/测试操作,该操作会将可部署的代码GITHUB_WORKSPACE在GITHUB_WORKSPACE ,...

    tweet-signer:使用GithubSSH密钥签名您的推文

    在您的个人资料简历中添加一个以“ .keys”结尾的链接,该链接应为有效的公共密钥。 如果.keys包含多个键,则将使用第一个键。 需要验证的推文必须恰好包含一个图像附件,该图像附件应该是该推文的QR码签名。 ...

    git使用教程

    git从入门到高级的图像化教程 从安装git到生成ssh公钥 添加GitHub GitLab 码云SSH等 各种git使用场景

    ansible-roles-secure-shell:安全设置SSH的角色

    这在很大程度上受以下博客文章的:安装克隆仓库: $ git clone https://github.com/gunzy83/ansible-roles-secure-shell.git ~/projects/ansible-roles-secure-shell然后将路径添加到您的ansible.cfg文件: roles_...

    ssh私钥泄露获取主机权限

    ssh认证结构 id_rsa:就是你的私钥,用于解密由公钥加密的内容; id_rsa.pub:公钥,很多服务器都是需要认证的,ssh认证是其中的一种。在客户端生成公钥,把生成的公钥添加到服务器,你以后连接服务器就不用每次都输入...

    2018尚硅谷Git和GitHub视频教程

    42.SSH免密登录 43.Eclipse中Git插件简介 44.Eclipse中把工程初始化为本地库 45.在Eclipse中设置本地库范围签名 46.Eclipse中Git图标的介绍 47.Eclipse特定文件介绍以及为什么要忽略它们 48.忽略Eclipse中的特定文件...

    ssh-key-and-known-hosts-action:设置私钥并将主机添加到已知主机

    此操作将添加SSH密钥,并将给定的主机名或IP地址添加到已知的主机文件中,以供外部服务器访问。 它受到了极大启发。 例如,您可以在使用scp或rsync将文件复制到外部服务器之前运行此操作。 输入项 ssh-private-key ...

    libssh2-labview:用于通过libssh2支持SSH客户端的LabVIEW库

    这可以通过使用库和LabVIEW友好的包装器库向LabVIEW添加SSH客户端支持。 这仅添加了客户端SSH支持。 它不添加SSH服务器的支持。目录 使用VIPM Free包装文献资料测验执照 用法示例使用此工具包从远程SSH服务器下载...

    custom-ssh-key-buildpack:向您添加SSH密钥Heroku dyno

    GitHub: : Bitbucket: : 将私钥编码为base64字符串,并将其添加为heroku应用程序的CUSTOM_SSH_KEY环境变量。 制作一个逗号分隔的主机列表,将其用于ssh密钥,并将其添加为heroku应用程序的CUSTOM_SSH_KEY_HOSTS...

    gapcio:使用Github轻松管理您的SSH密钥

    差距gapcio是一个简单的shell脚本,可以使用Github作为...keys_path删除给定用户的所有公共密钥(默认为`〜/ .ssh / authorized_keys)例子将Github上zaiste用户的所有公共密钥添加到当前计算机上的~/.ssh/authorized_

    heroku-buildpack-ssh:Heroku buildpack用于为您的所有dynos添加私有ssh密钥

    (可选)设置SSH_KNOWN_HOSTS以对其运行ssh-keyscan并将其添加到已知主机文件中。 heroku config:set SSH_KNOWN_HOSTS= " github.com bitbucket.com " 将构建包添加到您的应用程序: heroku buildpacks:add ...

    wildrydes-site

    在“设置-&gt; SSH和PGP密钥”下将SSH密钥添加到GITHUB帐户 3.3设置GITHUB存储库 创建GITHUB存储库“ wildrydes-site” 克隆GITHUB存储库 填充GITHUB存储库aws s3 cp s3://wildrydes-us-east-1/We

    authorized_keys:从 github api 中提取公共 ssh 密钥

    从 github 团队拉取公共 ssh 密钥并将它们写入一个 authorized_keys 文件。 这有利于授予对服务器的访问权限。 安装 将此行添加到应用程序的 Gemfile 中: gem 'auth_keys' 然后执行: $ bundle 或者自己安装: ...

    macOS-SSH:使用ngrok或tmate SSH到在GitHub中运行的macOS Big Sur中运行

    macOS SSH SSH到在GitHub中运行的macOS Big Sur中准备分叉此回购在存储库秘密NGROK_TOKEN您的ngrok身份NGROK_TOKEN添加为NGROK_TOKEN 您可以在以下位置找到此令牌: : 在存储库SSH_PASSWORD中将外壳程序登录密码添加...

    npm-github:npm 注册表代理到 github 存储库

    npm-github ... 以前,您需要通过这个虚假注册中心代理所有请求,但通过添加这实际上可以在每个组织或用户级别上完成,并且还使得将私有存储库作为模块安装变得更加简单。 设置 您需要将 npm v1.5+

    ssh-key-action:将SSH密钥安装到.ssh的GitHub Action

    安装SSH密钥 此操作将SSH密钥安装在~/.ssh 。 对于SCP,SFTP和在部署...通过单击Settings - Secrets -预先Add a new secret机密,将SSH密钥添加到产品机密中。 可以使用PEM(RSA),PKCS8和RFC4716(OpenSSH)格式。

    git-mirror-action::next_track_button:一个GitHub Action,用于通过SSH将git存储库镜像到另一个位置

    GitHub Action,用于通过SSH 到另一个位置。 输入项 source-repo 源存储库的必需SSH URL。 destination-repo 目标存储库的必需SSH URL。 环境变量 SSH_PRIVATE_KEY :创建一个不带密码的,该密码可以访问两个存储...

Global site tag (gtag.js) - Google Analytics