赞
踩
系统:Centos 7.5
环境:x64
Centos7 配置ssh免密登陆
1. 查看是否安装有ssh
执行命令: ssh -V //查找ssh
若输出类似: OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013,说明已经安装。若没有安装,则可以在线安装或者手动安装
a. 在线安装 yum instgall openssh-server -y
b. 手动安装, 下载地址https://cloudflare.cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/
2. 生成ssh密钥
a. 输入命令,生成密钥。如图
执行命令: ssh-keygen -t rsa
输入密钥存储路径,直接回车则为默认路径
输入密钥密码
重复确认密码
生成成功
b. copy密钥并添加权限。
1. 将公钥copy到.ssh/authorized_keys (如没有该文件,可自行创建)中。
touch authorized_keys
cat id_rsa.pub > authorized_keys
2. 分配权限
chmod 600 authorized_keys
chmod 700 .ssh
ps:
a. 想要哪个账户免密登陆,就su到该用户下,再执行ssh-keygen命令
b. 存储密钥的默认路径是当前用户路径下.ssh, 如test用户,则默认存储路径是/home/test/.ssh/
c. authorized_keys 文件可以自行创建,该文件名不能拼错
d. 私钥的名字可以用重命名来自行更改
3. 修改ssh配置文件并生效
1. 修改sshd_config 输入命令: vim /etc/ssh/sshd_config 修改如下参数: #端口 Port 22 #配置监听地址 ListenAddress 0.0.0.0 ListenAddress :: #配置密钥 AuthorizedKeysFile .ssh/authorized_keys #使用公钥 PubkeyAuthentication yes # #使用默认sftp Subsystem sftp /usr/libexec/openssh/sftp-server #Subsystem sftp internal-sftp 2. 重启ssh服务,生效 systemctl restart sshd
ps: 若ssh运行异常,可以查看/var/log/secure文件来查看下ssh启动log。
4. 测试使用
a. copy出私钥 /root/.ssh/id_rsa,
b. 使用xshell测试。
c. xftp测试sftp。
d. windows下cmd控制台测试sftp方式:输入命令 sftp -oIdentityFile=密钥绝对路径 -oPort=端口 用户名@地址
如: sftp -oIdentityFile=d:\id_rsa -oPort=22 root@192.168.1.188
4. 常见错误
执行ftp文件操作的时候,windows下200 PORT command successful. Consider using PASV. 553 , 排查两个地方: a. ftp根目录是否有读写权限; b. windows下防火墙关闭。
配置文件中的密钥位置错误,密钥文件名拼写错误。
配置完密钥以后,使用密钥登陆服务器,仍然提示需要输入用户密码,原因可能是:A. 用户和文件权限问题; B. 配置文件。解决方式:
A:
//用户权限
chmod 700 /home/username
//.ssh文件夹权限
chmod 700 ~/.ssh/
// ~/.ssh/authorized_keys 文件权限
chmod 600 ~/.ssh/authorized_keys
B:
vim /etc/ssh/sshd_config,确认修改如下行
AuthorizedKeysFile .ssh/authorized_keys
修改以后systemctl restart sshd 重启生效
结束
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。