在CentOS 7中使用SSH登录

参考

本文参考于利用xshell密钥管理服务器远程登录+VIM dd命令操作之伤之再伤

什么是SSH

SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。

在Xshell中启用SSH密钥登录

使用菜单栏-工具-新建用户密钥生成向导。

centos7ssh登录失败 centos ssh登录_用户密钥

密钥类型选择RSA,密钥长度选择2048位,继续。

centos7ssh登录失败 centos ssh登录_7 centos ssh 单机_02

生成公钥对界面后,为该密钥起一个自己理解的名称或保持默认。使用密码为此密钥加密,保证安全。

centos7ssh登录失败 centos ssh登录_7 centos ssh 单机_03

保存生成的公钥,生成密钥完成。

centos7ssh登录失败 centos ssh登录_centos7ssh登录失败_04

将上一步生成的公钥拷贝至用户home目录下的.ssh/authorized_keys。

需要注意的是,权限需要设置为700。

多次检查是否复制完整

1  [wxd@localhost ~]mkdir .ssh

2  [wxd@localhost ~]chmod 700 .ssh/

3  [wxd@localhost ~]cd .ssh

4  [wxd@localhost .ssh]$ vim authorized_keys

5  粘贴上一步生成的密钥,保存并退出。

6  [wxd@localhost .ssh]$ chmod 700 authorized_keys

修改文件 /etc/ssh/sshd_config,修改下列两行(将#号去掉)

1 RSAAuthentication

2 PubkeyAuthentication

使用下列命令重新启动sshd服务(需要管理员权限)

1  systemctl restart sshd

使用SSH登录

在Xshell连接上右击,选择属性。点击左侧栏位中的用户身份验证项。方法选择Public Key,填写刚刚添加ssh密钥的用户,在用户密钥栏中选择刚刚创建的密钥。

centos7ssh登录失败 centos ssh登录_centos7ssh登录失败_05

点击确定,保存连接属性。

点击连接,使用SSH密钥登录系统。

在其他计算机的Xshell上登录(密钥的导出和导入)

导出

使用菜单栏-工具-用户密钥管理者。

centos7ssh登录失败 centos ssh登录_centos7ssh登录失败_06

在需要导出的密钥上点击右侧的导出,保存导出的私钥文件。

其他

再三确认公钥是否拷贝完全至authorized_keys文件中

确认authorized_keys文件权限为700

如果依旧无法正常登录,按照下列步骤关闭Linux防火墙(需要管理员权限)

永久关闭SElinux

1  vi /etc/selinux/config #修改SELinux的配置文件

2  更改"SELINUX=enforcing"为 SELINUX=disabled 保存退出。

关闭Linux防火墙

1  [root@localhost ~]# iptables -F #清空防火墙配置

2  [root@localhost ~]# /etc/init.d/iptables save #清空防火墙配置后,记得保存