CentOS7.0免密登录以及错误解决

本文详细介绍如何配置SSH客户端及服务器实现免密登录,包括生成公钥/私钥对、公钥复制到服务器、服务器配置文件调整、服务重启及权限设置等步骤。

客户端配置

(1)生成公钥/私钥对

ssh-keygen -t rsa -P ''

-P表示密码,-P ” 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车。
如果是root用户下生成,生成位置将在:/home/.ssh里面。前提是,你得创建一个.ssh目录。如果是普通用户,将在/home/用户名/.ssh里面。

(2)公钥复制到服务器
可以手动复制,也可以通过scp远程传输复制(需要登录密码):

想要免密登录普通用户:
scp .ssh/id_rsa.pub 用户名@192.168.1.181:/home/用户名/.ssh/authorized_keys

想要免密登录root用户:
scp .ssh/id_rsa.pub root@192.168.1.181:/root/.ssh/authorized_keys

服务器配置

(1)首先:配置ssh服务器配置文件。

在root 用户下才能配置。

vi /etc/ssh/sshd_config

修改之后为:

PermitRootLogin no

PasswordAuthentication no

权限设为yes:

RSAAuthentication yes

PubkeyAuthentication yes

(2)重启sshd服务

systemctl restart sshd.service

systemctl status sshd.service #查看ssh服务的状态

#systemctl start sshd.service  #开启ssh服务

#sytemctl enable sshd.service #ssh服务随开机启动,还有个disabled

#systemctl stop sshd.ervice #停止

正常情况下应该是Active:active(running)

(3)修改文件夹以及文件的权限。

如果是普通用户修改:

chmod 700 /home/用户名/.ssh
chmod 644 /home/用户名/.ssh/authorized_keys

如果是root修改:

chmod 700 /root/.ssh
chmod 644 /root/.ssh/authorized_keys
通过命令连接:ssh -v 用户名@hostname

如果root用户或者普通用户免密登录报错(SSH configuration, publickeys, Permission denied (publickey,password)):

请关闭SELinux:

暂时关闭(重启后恢复):
setenforce 0  

永久关闭(需要重启):
vi /etc/selinux/config  
SELINUX=disabled 

参考:

https://www.cnblogs.com/xubing-613/p/6844564.html
http://flysnowxf.iteye.com/blog/1567570

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值