您的位置:首页 > 运维架构 > Linux

关于linux系统ssh远程免密登录的问题

2017-11-14 10:51 633 查看
rsync命令的前提是建立ssh远程免密登录。

在ubuntu系统下面是自带openssh 客户端的,在centos系统下面有可能没有安装客户端,若没有安装使用yum命令安装客户端。

一般ssh命令是root权限下设置的,但是出于安全考虑很多linux系统不允许root直接登录,有的会采用先允许普通用户登录,普通用户登录成功后允许其输入root密码提权,这也对ssh的设置产生了些许影响,说明如下:

打开A主机的控制终端,输入ssh-keygen命令,按两次回车,生成密钥对。

在当前目录下执行cd .shh进入.ssh目录,这个。.ssh目录一般是被隐藏起来的,但是可以通过ll命令查看,但是通过ls命令确实是无法查看的。

执行远程拷贝命令

scp id_rsa.pub ubuntu@192.168.0.112:.ssh/id_rsa.pub

输入远程用户密码,回车

ssh ubuntu@192.168.0.112

输入密码进入远程主机

cd /home/ubuntu/.ssh

将公钥内容追加到authorized_keys

cat  id_rsa.pub >> authorized_keys

查看authorized_keys

cat  authorized_keys

修改 authorized_keys 权限

chmod 600 authorized_keys

修改.ssh权限

chmod 700 .ssh

使用exit命令返回A主机

使用ssh ubuntu@192.168.0.112

尝试连接远程主机,诶?仍然要求输入密码,为什么?

实际上通过ll命令可以看到,.ssh和authorized_keys的用户和用户组都是root,那么ubuntu当前非root用户自然是无法使用这两个文件的。

解决方法,

使用chown ubuntu .ssh ,chgrp .ssh 修改.ssh用户和用户组

使用chown ubuntu authorized_keys  ,chgrp ubuntu authorized_keys 修改.authorized_keys用户和用户组

使用ssh ubuntu@192.168.0.112

尝试连接远程主机,成功!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux ssh 终端 ubuntu centos