SSH keys生成 & 简介

译自文章 https://help.github.com/articles/connecting-to-github-with-ssh/
1.SSH协议

  • 使用SSH协议 你能连接远程服务跟自身的服务进行身份验证,使用SSH密钥,能使你在每次连接服务器的时候不用输入用户名和密码。

以下操作都是在终端进行

2.检查是否存在SSH密钥

#列出~/.ssh中的文件
ls -al ~/.ssh

3.生成SSH密钥并加入ssh-agent

  1. 生成密钥
    ssh-agent -- 可以管理ssh密钥跟记得你的密码 如此便可以在你每次使用ssh密钥时不用输入密码

    ssh-keygen -t rsa -b 4096 -C "[email protected]" 终端输出
    Enter file in which to save the key (/Users/yourname/.ssh/id_rsa):
    建议自己在 ~/.ssh 文件中添加一个文件,以免下次生成替换了当前密钥对,如:

    /Users/you/.ssh/test 然后提示设置密码,您随意。

2.加入agent

  1. 在后台启动ssh-agent
eval "$(ssh-agent -s)"
 2.如果你使用macOS Sierra 10.12.2或更高版本的系统,你需要手动修改文件 ~/.ssh/config 让ssh-agent自动加载密钥并存储在你的钥匙串中
Host *
 AddKeysToAgent yes
 UseKeychain yes
 IdentityFile ~/.ssh/test

3.将你的密钥加入agent并存储到钥匙串中

$ ssh-add -K ~/.ssh/test

4.修改ssh密钥的密码
还记得 2中生成密钥对时让你输入密码吗?如果你嫌将他们加入ssh-agent麻烦,又不想每次连接服务器都要输入密码,怎么办呢?那就不设密码呗,也就是说 2中生成密钥对时密码可以为空,如果已经设了密码那就可以用这个重设为空了

启动ssh密钥的创建过程

ssh-keygen -p

终端会输出
Enter file in which the key is (/Users/you/.ssh/id_rsa):/Users/you/.ssh/ test
Enter new passphrase (empty for no passphrase): [Type new passphrase]
Enter same passphrase again: [One more time for luck]
Your identification has been saved with the new passphrase.

ps.
如果不想每次启动都输入密码,还可以添加ssh的公钥到authorized_keys文件中

// 添加ssh的公钥到authorized_keys文件中
$ mkdir ~/.ssh && cd ~/.ssh
$ ssh-keygen -t rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

你可能感兴趣的:(SSH keys生成 & 简介)