SSH密钥配置

这个密钥用来跟 github 通信,在本地终端里生成然后上传到 github;


1、创建SSH密钥

 1)打开终端,输入命令 ssh-keygen -t rsa -C "66******33@163.com" 然后按回车键,双引号里的邮箱换成自己的;

    2)按回车保存到默认位置,再稍等出来提示输入密码短语,输完按回车要输两遍;它用来加密私钥,也就是以后使用私钥的时候要输这个密码;

    3)稍等出来提示成功,密钥存放在自己主文件夹的.ssh文件夹中

    4)打开文件管理器,显示隐藏文件后,可以看到这个文件夹中有两个文件,一个私钥一个公钥,把这个文件夹备份一下.id_rsa 是密钥 ,id_rsa.pub是公钥。

打开公钥文件,把里面的内容全部选中以后复制一下,等会要用到;

    5)接下来登录 github,在右上角自己的用户名旁边找到扳手图标设置账户,在设置页面右边找到 SSH  Keys,点击进入;

    6)点击ADD SSH key

    7)在 Title 里输一个名称,下面的 Key 里一会粘贴自己的公钥;

 8)到刚才的.ssh文件夹中,双击打开自己的公钥文件 id_rsa.pub,复制里面的所有内容,然后粘贴到刚才的密钥导入框中,然后点下边的“Add Key”导入密钥;


网址:https://help.github.com/articles/generating-ssh-keys

官方步骤:


Step1:Check for SSH Keys

    首先检查在你的电脑上是否存在SSH
    命令:
     cd ~/.ssh
    如果显示‘No such file or directory’那么直接到step3

Step2: Back up and remove exiting SSH
    $ ls -l
    $ mkdir key_backup
    $ cp id_rsa* key_backup
    $ rm id_rsa*
Step3:Generate a new ssh key
    $ ssh-keygen -t rsa -C "you email@email.com" 或者去掉 -t rsa
    接下来会提示你输入一个文件名来保存你的SSH key ,如果不输入直接回车,则会保存在默认的文件里id_rsa.pub
    然后会提示你输入passphrases 连续输入两次,这在你在网页中添加SSH key的时候会让你输入一次。

Step4:Add you ssh key to GitHub

    首先得到刚才生成的SSH,自己打开id_rsa.pub复制内容或者如下命令放到剪切板中也可以
    $ sudo apt-get install xclip   //安装剪切板
    $ xclip -sel clip < ~/.ssh/id_rsa.pub
    这样就复制到剪切板了
然后到github.com 登录自己的帐号。Account Setting ---->SSH KEYS ---->Add SSH key ------>粘贴到KEY feild  然后自己取个名------>会提示你confirm password 点击 ------>弹出密码输入框,就是输入给你刚才的自己设置的passphrases ,ok!

Step5:testing
    命令:
    $ 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
     Hi username! You've successfully authenticated, but GitHub does not provide shell access.


   转载 http://blog.youkuaiyun.com/makenothing/article/details/8450417

<think>好的,我现在需要帮助用户解决SSH密钥配置的问题。首先,我得回忆一下用户提供的引用内容,看看里面有没有相关的解决方案。用户提到了三个引用,分别涉及SSH密钥的基础知识、生成过程、添加到GitLab和Jenkins的配置,以及常见问题的解决办法。 首先,用户可能遇到的问题可能包括生成密钥、添加公钥到GitLab或GitHub、Jenkins配置,以及连接验证失败等常见错误。根据引用[1],里面提到了生成SSH密钥的步骤,比如使用ssh-keygen命令,然后添加到GitLab。引用[2]提到在Windows系统中公钥的位置和验证方法,比如ssh -T命令。引用[3]则涉及使用Ansible自动化配置SSH密钥,可能对批量处理有帮助。 接下来,我需要按照用户的要求,结构清晰地分步骤解答。可能需要先讲生成密钥,然后添加公钥到Git平台,再配置Jenkins,最后验证连接。常见问题如Host key verification failed或者认证失败,需要根据引用中的解决方案来回答,比如检查known_hosts文件,或者确认私钥权限是否正确。 另外,用户要求使用中文,行内公式用$...$,独立公式用$$...$$,但这里可能用不上数学公式。不过需要确保LaTeX语法正确,如果有用到的话。例如,如果有路径需要强调,可以用代码块或者反引号包裹。 现在需要组织回答的结构,确保每个步骤清晰,并引用对应的引用来源。比如在生成密钥的部分,引用[1]的示例生成过程;在添加公钥到GitLab时,引用[1]和[2]的内容;配置Jenkins时引用[1]的示例填充内容;验证连接部分引用[2]的ssh -T命令;常见问题部分引用[1]的三个问题及解决方案,比如Host key verification failed对应检查known_hosts,SSH Authentication failed对应检查私钥权限和路径,Git版本太旧则建议升级。 可能还需要注意用户提到的不同操作系统,比如Linux和Windows的路径差异,引用[2]提到Windows的.ssh目录在C:\Users\用户名\.ssh下,而Linux一般在~/.ssh/。此外,Ansible的自动化配置在引用[3]中,可以作为一个高级解决方案提及。 最后,生成相关问题,比如如何生成密钥、如何添加到GitLab、Jenkins配置步骤、验证方法、常见错误处理等,确保问题覆盖用户可能遇到的各个方面。 需要确保回答真实可靠,基于提供的引用内容,不添加未提及的信息。例如,引用中没有提到macOS的具体步骤,所以可能不涉及。同时,检查是否有遗漏的步骤,比如密钥权限设置(如chmod 600 ~/.ssh/id_rsa),这在SSH认证失败时很重要,但用户引用中是否有提到?引用[3]的ansible配置可能涉及推送公钥,但用户的问题可能更关注手动配置。 总结步骤应该是: 1. 生成SSH密钥对(ssh-keygen) 2. 添加公钥到GitLab/GitHub 3. Jenkins中配置私钥 4. 验证连接 5. 常见问题解决 每个步骤需要详细说明,并标注引用来源。比如生成密钥对时引用[1]和[2],Jenkins配置引用[1],验证引用[2],问题解决引用[1]和[3]。 现在开始组织语言,确保每个部分自然衔接,引用标识正确放置。例如,在说明生成过程时,末尾添加[^1],在提到Windows路径时添加[^2]等。</think>### SSH密钥配置问题解决方案 #### 一、生成SSH密钥对 1. **Linux/MacOS系统** 终端执行以下命令生成密钥: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 默认保存路径为`~/.ssh/id_rsa`(私钥)和`~/.ssh/id_rsa.pub`(公钥)[^1]。 2. **Windows系统** 使用Git Bash或WSL执行相同命令,公钥路径为`C:\Users\用户名\.ssh\id_rsa.pub`[^2]。 --- #### 二、添加公钥到GitLab/GitHub 1. **复制公钥内容** ```bash cat ~/.ssh/id_rsa.pub # Linux/MacOS type C:\Users\用户名\.ssh\id_rsa.pub # Windows ``` 2. **粘贴到平台设置** - **GitLab**:`Profile Settings` → `SSH Keys` → 粘贴公钥[^1]。 - **GitHub**:`Settings` → `SSH and GPG Keys` → `New SSH Key`[^2]。 --- #### 三、Jenkins配置SSH密钥 1. **添加私钥到Jenkins凭据** - 进入`Jenkins` → `Manage Credentials` → `System` → `Global credentials`。 - 选择`SSH Username with private key`,填写用户名并粘贴私钥内容[^1]。 ```plaintext -----BEGIN OPENSSH PRIVATE KEY----- [粘贴私钥内容] -----END OPENSSH PRIVATE KEY----- ``` 2. **自动化配置(可选)** 使用Ansible批量部署公钥至多台服务器[^3]: ```yaml - name: 推送公钥 authorized_key: user: root key: "{{ lookup('file', '/root/.ssh/id_rsa.pub') }}" ``` --- #### 四、验证连接 执行命令测试连通性: ```bash ssh -T git@gitlab.com # GitLab ssh -T git@github.com # GitHub ``` 成功提示示例:`Welcome to GitLab, @username!`[^2]。 --- #### 五、常见问题及解决 1. **Host key verification failed** - 删除`~/.ssh/known_hosts`中对应记录,重新连接[^1]。 - 或执行:`ssh-keyscan gitlab.com >> ~/.ssh/known_hosts`。 2. **SSH Authentication failed** - 确认私钥路径正确,权限设为`600`: ```bash chmod 600 ~/.ssh/id_rsa ``` - Jenkins中检查凭据配置是否包含完整私钥内容[^1]。 3. **Git版本过旧** 升级Git至最新版: ```bash git --version # 检查版本 sudo apt-get update && sudo apt-get install git # Ubuntu ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值