Ubuntu使用ssh公钥实现免密码登录

ssh 无密码登录要使用公钥与私钥。linux下可以用用ssh-keygen生成公钥/私钥对,下面我以Ubuntu为例。

有机器A(10.0.2.1),B(10.0.2.100)。现想A通过ssh免密码登录到B。
首先以kube账户登陆为例。

1.在A机下生成公钥/私钥对

 

ssh-keygen -t rsa -P ''

 

-P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车。
该命令将在~/.ssh目录下面产生一对密钥id_rsa和id_rsa.pub。

如果在生成过程中指定了文件路径和文件名,例如~/.ssh/k8s_rsa, 则生成~/.ssh/k8s_rsa和~/.ssh/k8s_rsa.pub两个文件

2.public key复制到B机
把A机下的~/.ssh/k8s_rsa.pub 复制到B机的 ~/.ssh/authorized_keys文件里,先要在B机上创建好 ~/.ssh 这个目录,用scp复制。

scp ~/.ssh/k8s_rsa.pub kube@10.0.2.100:~/.ssh/authorized_keys

由于还没有免密码登录的,所以要输入一次B机的root密码。

3.authorized_keys的权限要是600!!!

sudo chmod 600 ~/.ssh/authorized_keys

4. 免密登陆到B机

ssh -i ~/.ssh/k8s_rsa.pub kube@10.0.2.100

5. 将private加入ssh-agent

ssh-add k8s_rsa

注意事项:

如果产生密钥对名称为id_rsa和id_rsa.pub,则在登陆时不需要使用 -i 参数指定私钥。

第一次登陆时会需要输入yes, 将远程主机加入 known hosts

 

posted @ 2016-12-22 16:49  秋日私语的博客  阅读(20040)  评论(0编辑  收藏  举报