在Linux中配置ssh密钥

ssh密钥作用

在Linux中配置ssh密钥,在Git中使用SSH协议访问Github,使用 SSH 协议, 您可以连接并验证远程服务器和服务。在每次访问时连接到服务而不提供用户名或密码。

第一步:检查是否存在SSH密钥

1
ls -al ~/.ssh

如果不存在就会显示无法访问

第二步:生成SSH key

输入指令:

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

字母C一定要大写

  • Enter file in which to save the key (~/.ssh/id_rsa): 提示文件存放位置,一般情况下就是存储在当前用户下.ssh文件夹下面。【直接回车】。
  • Enter passphrase (empty for no passphrase):提示输入密码
  • Enter same passphrase again: 输入确认密码

此时可以在/~/.ssh中看到 id_rsa(私钥) 和id_rsa_pub(公钥)

第三步:连接gitlab、github、gitee

  • 粘贴id_rsa_pub公钥中的内容,cat、vim或者其他工具直接粘贴出来。

  • github网站上,右上角头像,点击settings==》SSH and GPC keys ==》new SSH key。粘贴公钥,确定完成。

  • 测试 ssh -T git@github.com

其他类似。

实现远程服务器免密登录连接

第一步:修改远程服务器sshd服务的配置文件

vim /etc/ssh/sshd_config
修改:

1
2
3
RSAAuthentication yes     # RSA认证
PubkeyAuthentication yes # 公钥认证
AuthorizedKeysFile .ssh/authorized_keys # 公钥认证文件路径

之后重启sshd systemctl restart sshd

第二部 将之前我们生成的公钥加入到服务器.ssh/authorized_keys文件中

依旧是复制粘贴,vim保存退出,搞定。

配置本地config文件。

1
2
3
4
5
Host vps                  # 一个便于你区别这是哪台机器的名字
HostName xx.xx.xx.xx # 目的机器的ip
User username # ssh登陆时候的用户名
Port 22 # ssh所使用的端口,默认是22
IdentityFile /~/.ssh/id_rsa # 对应服务器公钥的本地私钥文件路径

注意:~是指当前用户下地址,绝对路径自己pwd就可以看到了。