任务目标
有如下2台Linux主机
主机A:192.168.1.1
主机B:192.168.1.2
用 主机A 上的用户 www,登录到 主机B(root用户)
操作过程
1、配置 主机A
(1) 配置 主机A上 用户 www 的公钥:
cd /home/www
ssh-keygen -t rsa -C "lesjava@163.com"
(2) 拷贝 主机A上 用户 www 的公钥到 主机B 上 用户 root 的家庭目录/root下:(注意:需要输入 root 用户密码)
scp /home/www/.ssh/id_rsa.pub root@192.168.1.2:/root/
2、配置 主机B
(1) 追加上述拷贝过来的 公钥文本内容到 root 用户的 authorized_keys 文件中(注意:用 root 用户去操作)
cat /root/id_rsa.pub >> /root/.ssh/authorized_keys
(2) 配置 sshd
vim /etc/ssh/sshd_config
去掉以下配置前的注释符 “#”
#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys
(3) 设置权限【注意:这一步很重要,不然免密登录会失败】
chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys
(4) 重启 sshd 服务
service sshd restart
3、测试
在主机A 上 用 ssh 命令连接测试下,,,结果是:不用输入密码的
ssh root@192.168.1.2
即:当前 主机A 的登录用户 www,用 主机B 的用户 root 去登录 主机B,然后 用 主机B 的用户 root 去操作 主机B
顺便提一下:给 gogs (git项目管理系统) 账号配置公钥,其实是:
当前 主机A 的登录用户(如:www),用 主机B 的用户(如:gogs)去登录 主机B,然后用 主机A 的登录用户(如:前面的提到的 www),去操作 主机A
参考: