远程服务器 上传公钥,ssh-keygen教程第5章:copy公钥要服务端
ssh-keygen教程第5章:copy公钥要服务端上一章,我们已经生成了公钥和私钥,这一章我只需要将公钥copy到服务器(远程主机)就可以实现免密码登录了。graph LR本地主机 --ssh-copy-id--> 远程主机ssh-copy-id 公钥上传到远程主机$ ssh-copy-id root@k8s-node1/usr/bin/ssh-copy-id: ERROR: failed
ssh-keygen教程第5章:copy公钥要服务端
上一章,我们已经生成了公钥和私钥,这一章我只需要将公钥copy到服务器(远程主机)就可以实现免密码登录了。
graph LR
本地主机 --ssh-copy-id--> 远程主机
ssh-copy-id 公钥上传到远程主机
$ ssh-copy-id root@k8s-node1
/usr/bin/ssh-copy-id: ERROR: failed to open ID file '/root/.pub': No such file or directory
(to install the contents of '/root/.pub' anyway, look at the -f option)
从提示中看,是没有找到hellodemos.pub这个文件,所以我们可以通过-i选项指定pub文件所在的位置:
$ ssh-copy-id -i ~/.ssh/hellodemos.pub root@k8s-node1
root是远程服务器的用户名
k8s-node1主机名(IP)
注意,你如果在上一章改了公钥的名字,那么这里就需要填写具体的文件名字 *.pub
输出:
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "hellodemos.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0755 for '/root/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/root/.ssh/id_rsa": bad permissions
上面有一段关于权限的说明, Permissions 0755 for '/root/.ssh/id_rsa' are too open 需要0755的权限才能打开。 Load key "/root/.ssh/id_rsa": bad permissions 这句话也代表了权限似乎错误了。
这时候,我们需要设置文件的权限。
系统自动在服务器机器root/.ssh目录中生成authorized_keys文件,这个文件的内容和本地机上的 pub文件一摸一样,就是 ssh公钥文件。
sh-copy-id可能遇到的权限问题
为了让私钥文件和公钥文件能够在认证中起作用, 需要确保权限的正确性:
对于.ssh目录以及其内部的公钥、私钥文件, 当前用户至少要有执行权限, 其他用户最多只能有执行权限.
不要图省事设置成777权限: 太大的权限不安全, 而且数字签名也不支持这种权限策略.
对普通用户, 建议设置成600权限: chmod 600 ~/.ssh/*;
对root用户, 建议设置成644权限: chmod 644 ~/.ssh/*.
我这里是root用户,执行chmod 644 ~/.ssh/*修改权限就可以了。
一键配置2台机器ssh免密登录脚本
还是那句话,如果你觉得麻烦,执行一键安装ssh免密码登录就可以了,我们讲这么多,仅仅为了你可以了解原理。:)
wget http://66-ai.com/download/script-litte-prince/app/ssh-keygen.sh -O /root/ssh-keygen.sh && sh /root/ssh-keygen.sh
更多推荐
所有评论(0)