ssh PublicKey免密登录服务器
建立PublicKey登陆步骤其实非常简单,总结来说就是将客户端生成的的ssh public key添加到服务器的 ~/ssh/authorized_keys 文件中,即可实现ssh的免密码登录。
在客户端生成公钥密钥 附一篇 ssh-keygen 基本用法
然后一路回车, 使用默认值即可
使用 ls 命令可以看到当前目录下的文件,有了个 id_rsa 和 id_rsapub ,前者是密钥,后者是公钥。
查看公钥
复制公钥
先尝试进入 ssh 看看目录是否存在
若不存在则新建一个
然后修改权限
接着再进入ssh,然后修改将公钥添加到authorized_keys
按 i ,然后将刚刚复制的密钥粘贴到这里,按 esc ,再按 : ,输入 wq 保存并退出
接着修改权限
做好配置之后,通过ssh可以直接登录了。
我们可以利用ssh的配置文件来简化我们登陆的操作
配置文件在 ~/ssh/config
我们可以修改这个文件(如果不存在则新建一个)
YourName可以改成任意名字
如果修改了端口则需要加上 Port 参数
还有各种各样的参数可以查看帮助
配置完后可以这样登陆服务器
Enjoy it~
为什么需要找回公钥呢?因为干了一件蠢事,因为ssh登陆服务器懒得输入密码,就准备把本机公钥 ~/ssh/id_rsapub 添加到服务器的授权密钥 ~/ssh/authorized_keys 里去,结果因为是临时随便搜的方法,拷贝的时候用的这个命令: scp ~/ssh/id_rsapub 登录用户名@服务器域名:~/ssh/ ,按下回车我就后悔了,这不是把服务器的公钥覆盖了么。赶紧测试一下是不是这样,比如 Github 一般都是设置ssh key登陆账号的,测试连接:
果然出事了。
意外的简单:
注意这样生成的公钥是没有注释的,一般在后面补上 空格+用户名@主机名 更好。
之前我还在担心无法找回,毕竟记得rsa是个对称的加密算法,能从私钥找回公钥岂不是反向也可?
赶紧补补课,比较重要的点是这几个:
所以,光有公钥或私钥都是不能直接计算出对方的,而rsa加密初始计算完成后只需要保留公钥私钥。但是,本机上在文件 id_rsa 其实保存了私钥公钥和生成密钥时的其他所有数据,用
就能方便地查看,其中就有modulus,publicExponent,privateExponent,prime1,prime2等等,对应于n, e, d, p, q。而且通常来说公钥都是固定的一个数字65537 (0x10001),所以找回公钥非常方便。
你的git服务器是用什么管理的? 1、如果是gitolite的话,因为你是管理员,直接把gitolite-admingit克隆到本地,然后把你要添加的公钥放在gitolite-admin文件夹下面的keydir文件夹中,然后执行git add,git commit,最后git push到服务器就
0条评论