ssh免密码登录服务器,免密码推送git代码


title: ssh免密码登录Linux服务器,免密码推送git代码
date: 2018-08-04 00:49:05
tags: [Linux,ssh,git]


需求: 在本地windows和ubuntu使用同一套rsa秘钥免密码登录Linux服务器,推送git代码

  1. 生成你账户的rsa秘钥,如何生成ssh公钥
  • 本地win10,打开git bash终端,我用的是cmder
  • ssh-keygen -t rsa -C # 生成你账户的rsa秘钥
  • 中间要你输入密码,不要输入,直接回车,3次回车,看到如下所示的图表示秘钥对已经生成
+---[RSA 2048]----+
|        .o..     |
|        ++o      |
|       .o++.     |
|       .E= .o    |
|       .S +. . . |
|       o =   .= .|
|        = . .oo+ |
|      .o *o*..oo |
|     o++=+@=+o.oo|
+----[SHA256]-----+
  1. 到代码托管网站添加公钥
    生成的秘钥在C:\Users\你的用户名\.ssh目录下。id_rsa是私钥 id_rsa.pub是公钥
    进入.ssh目录,cat id_rsa.pub,查看生成的公钥。复制此公钥(以ssh-rsa 开头,以你的邮箱结尾的字符串)
    在代码仓库的设置页面添加此公钥

github的添加ssh公钥页面是 https://github.com/settings/keys
码云的是 https://gitee.com/profile/sshkeys
coding.net的是 https://coding.net/user/account/setting/keys

如果之前有添加过的公钥也没关系,可以添加多个,标题随便写。
添加好之后,可以使用命令
ssh -T [email protected], # github
ssh -T [email protected], # 码云
ssh -T [email protected], # 码市
这3条命令查看是否能够连接到对应网站的服务器。如果配置正确,会出现successful的信息。
添加公钥之后,就可以使用git@开头的仓库地址推送代码了。并且不需要输密码。它们的关系如下:

[email protected]:xxx/xxxx.git ==> https://github.com/xxx/xxxx.git
[email protected]:xxx/xxxx.git ==> https://gitee.com/xxx/xxxx.git
[email protected]:xxx/xxxx.git ==> https://git.coding.net/xxx/xxxx.git

  1. 配置本地ubuntu虚拟机ssh免密码登录远程服务器
    .ssh目录下的id_rsaid_rsa.pub文件复制到本地ubuntu虚拟机中。放在.ssh目录下,并修改二者的权限为600.
    chmod 600 ./id_rsa*
    其实ubuntu下,可以使用命令ssh-keygen -t rsa
    -t 是type,后面跟生成秘钥的类型,这个命令是生成rsa类型的秘钥。这里为了便于操作,直接复制生成好的秘钥对。
    id_rsa私钥 和 id_rsa.pub公钥复制到远程服务器。
    scp /home/<用户名>/.ssh/id_rsa* 用户名@服务器ip:/home/<用户名>/.ssh # (确保服务器的路径正确。如果没有.shh目录,先创建一个)
    先密码登录服务器,进入~/.ssh/目录,
    cat id_rsa.pub >>authorized_keys # 将公钥添加至authorized_keys文件(如果没有此文件,先创建)
    更改 authorized_keys 文件的权限 chmod 600 authorized_keys
    下次即可在有私钥的电脑上(win10和虚拟机中的ubuntu)免密码登录你的远程服务器了
    如果失败,请检查ssh服务是否正常运行。

你可能感兴趣的:(ssh免密码登录服务器,免密码推送git代码)