学习小结:(详细)利用SSH协议远程联机,使用密钥认证登录SSH服务器

工具:windows主机,Linux虚拟机

1.利用SSH协议远程登录(输入账户密码登录)

1. 简单介绍:

SSH协议(The Secure Shell):主要目的是在非安全的网络上提供安全的远程登录和数据传输服务。
传统的远程联机协议,例如Rlogin/Telnet协议,在网络上用明文传送数据,用户账号和用户口令很容易受到中间人攻击方式的攻击,SSH协议对所有传输的数据进行加密,利用SSH协议可以有效地防止远程管理过程中信息泄露的问题。

CentOS 系统基本上都默认安装了SSH服务器套件,其中必须要有的核心组件是opensshopenssh-server SSH服务器端。

2.检查服务

yum list installed | grep openssh命令来查看是否安装了openssh:
在这里插入图片描述
若未安装openssh服务,可使用 yum install openssh 命令来安装此服务。

openssh-server的守护进程名为sshd,可以用service sshd status或者systemctl status sshd.server命令来查看服务是否启动。

注:在CentOS 7中对服务进行操作不再是 service 服务名称 动作, 而是: systemctl 动作 服务名.servicesystemctl命令代替了service和chkconfig命令,但是service这些命令在CentOS 7 中还是能用的,只是有的不显示结果了,CentOS 7相应的命令操作(以sshd服务举例):
启动服务:systemctl start sshd.server
重启服务:systemctl restart sshd.server
查看状态:systemctl status sshd.server
关闭服务:systemctl stop sshd.server
设为开机启动:systemctl enable sshd.service
禁止开机启动:systemctl disable sshd.service

可以用systemctl is-enabled sshd.service命令来查看sshd服务是否是开机启动,enable即为开机启动,若是disable自己设为开机启动就行了。
此时sshd状态为已启动:
在这里插入图片描述

3.额外配置

再对SSH服务器进行一些额外的安全配置,openssh服务器的主要配置文件是 :/etc/ssh/sshd_config

用vim对/etc/ssh/sshd_config添加四行代码:
PermitRootLogin no (表示不接受root用户远程联机)
PermitEmptyPasswords no (表示不接受口令为空的用户远程联机)
ClientAliveInterval 30
ClientAliveCountMax 4(表示客户端若30s内没有任何动作,服务器将发送一个alive消息给客户端,如果连发4次alive消息客户端仍没有动作,服务器将断开连接)

在这里插入图片描述
保存退出后,用systemctl restart sshd.server命令重启sshd.

4.远程登录

接下来使用Putty这款经典的SSH客户端软件来进行远程登录。

注:Putty可进入http://t.cn/hSPO1来下载,需要下载putty.exe和puttygen.exe,如图所示:
在这里插入图片描述
运行putty.exe,进行如图所示配置:
在这里插入图片描述
解决中文显示问题,避免中文乱码:
在这里插入图片描述
在这里插入图片描述
进行背景颜色等的配置:
在这里插入图片描述
点击Session选项,输入主机的IP地址、端口号,选择协议等(一般端口号和协议默认就行),完成后点击open进行连接:
在这里插入图片描述
若想要保存此次配置,可填写Saved Sessions选项,写个名称,点击保存即可,下次登录可直接选择。

首次登录一台主机时会弹出Putty Security Alert对话框,点击或者yes选项进入到登录界面:
在这里插入图片描述
输入正确的用户名和密码就ok了。
在这里插入图片描述
登陆成功上方的IP地址就会变成用户名了,至此远程登录就完成了。

2.使用密钥认证登录SSH服务器

1.修改配置文件

修改 /etc/ssh/sshd_config文件,禁止用户以密码认证身份的方式登录:
将yes改为no
在这里插入图片描述
此时重启一下sshd服务,再重复上述用户密码登陆的步骤就没办法登录了,会弹出如下错误提示:
在这里插入图片描述

2.密钥方式登录

1.建立密钥
用普通用户的身份登陆服务器,使用ssh-keygen -t rsa 命令开始生成密钥
在这里插入图片描述
第一次输入:输入密钥存放的路径,默认回车存放在用户家目录的.ssh目录下.
第二三次输入:连续两次输入生成私钥的口令(例如hello).
回车结束。
在这里插入图片描述
可以看出,生成的私钥放在id_rsa文件中,生成的公钥放在id_rsa.pub文件中
在这里插入图片描述
还可以看出生成的密钥指纹(密钥的MD5码)和直观的随机字符图randomart image.

2.处理密钥
进入到用户家目录的.ssh目录下查看公钥文件和私钥文件,然后用cat ./id_rsa.pub>> authorized.keys命令把公钥放入到stu用户指定的公钥文件中(默认是~/.ssh/authorized_keys文件),之后将原公钥文件删除,修改公钥文件的读写属性为400
在这里插入图片描述
3.分发私钥
通过安全方式将私钥分发给用户,在这里就不细说了(为完成实验任务,可以直接在Linux虚拟机的图形界面中将私钥文件拖到windows主机中)

4.转换私钥
puttygen的作用就是把ssh-keygen命令生成的私钥转换为putty可以使用的私钥,运行puttygen.exe,点击Load
在这里插入图片描述
选择所有文件类型,选中私钥文件
在这里插入图片描述
点击确定,弹出窗口要求输入建立私钥时的口令
在这里插入图片描述
输入后点击ok进行私钥的转换,转换成功会有提示
在这里插入图片描述
点击确定后,点击Save private key保存转换好的私钥,私钥的后缀总是.ppk
在这里插入图片描述
保存成功后,关闭puttygen.exe

5.密钥登录
启动putty.exe,选择私钥进行登录
在这里插入图片描述
选择好转化后的私钥文件后,选择Session选项,填写主机信息,点击open登录,进入登陆界面
在这里插入图片描述
输入用户名后,提示输入的是生成私钥时的口令,正确输入后,进入用户服务器
在这里插入图片描述
6.登录成功
!

发布了5 篇原创文章 · 获赞 5 · 访问量 188

猜你喜欢

转载自blog.csdn.net/myec_lipse/article/details/105584046