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中