1.什么是sshd服务?
客户端主机通过网络在服务端主机中开启服务端主机shell的服务
客户端通过网络连接服务端,并且控制服务端,也就是客户端开启了服务端的shell
ssh (安全外壳协议)
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。
SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。
SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。
几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
2.搭建实验环境
说明:本实验是在两台虚拟机中做,server主机为服务端,desktop主机为客户端
主机的ip不知道可以采用命令查看 :
在虚拟机的shell中输入 ip addr show eth0 即可查看
在真机的shell中输入 ip addr show br0 即可查看
步骤一:先在真机中打开两个虚拟机 desktop和server
步骤二:配置两台主机的ip ,配置网络在进程管理中已经详细说过,这里就不再赘述
desktop主机的ip为172.25.254.111,该主机用于客户端测试
server主机的ip为172.25.254.211,该主机用于服务端配置
步骤三:在两台主机的shell中分别删除 /root/.ssh/(删除这个目录rm -rf /root/.ssh 或者删除这个目录下的文件rm -rf /root/.ssh/*均可以)
为什么要删除/root/.ssh/?
客户端主机第一次连接服务端主机会在这个目录下生成known_hosts这个文件,为了验证这个实验效果,所以先将这个目录清空或者直接删除这个隐藏目录
直接在家目录下面输入ls -a(查看所有文件,包括非隐藏文件和隐藏文件) 或者l.(只查看隐藏文件)
步骤四:然后改两个主机名字
在客户端主机输入 hostnamectl set-hostname client.westos.com(desktop主机)
在服务端主机输入 hostnamectl set-hostname server.westos.com(server主机)
3.sshd的相关内容
(1)连接方式:(客户端主机连接服务端主机)
文本模式的连接
客户端可以启用服务端的文本模式功能
一台主机可以和另外一台主机连接起来,并且可以操作对方的文本模式
如果是客户端连接服务端,则客户端可以操作服务端的文本模式
如果是服务端连接客户端,则服务端可以操作客户端的文本模式
命令格式为 ssh [email protected]
说明:
username为被连接的主机的存在的任意用户,ip是被连接的主机的地址
记住:拿谁家的钥匙开谁家的门
具体操作过程如下:
步骤一:删除之前的认证文件
在客户端主机上输入cd,切换到家目录
ls -a 查看客户端主机文件,如果没有.ssh文件,说明没有连接过远程主机(服务端主机)
ls -ad /root/.ssh 直接查看是否有这个文件,如果显示没有,说明没有连过远程主机
步骤二:用客户端主机连接服务端主机
在客户端主机中输入: ssh [email protected](server主机的ip)
注意:
如果是第一次连接的话会问yes或者no-->输入yes
然后让输入密码:server主机的密码
然后exit退出
步骤三:用client主机重新连接server主机: ssh [email protected](server主机的ip)
拿谁家的钥匙开谁家的门 ,不一定是root用户 ,只要是目标主机的可用用户即可
注意:
这次会直接输入密码,没有问yes或者no,因为已经连接过一次,有.ssh文件
连接好之后exit退出
步骤四:在客户端主机中查看/root/.ssh/下的文件
cd /root/.ssh/ 切换到该目录下
ls 查看该目录下的文件
出现known_hosts文件
cat known_hosts 查看该文件的内容 会显示server主机的信息
步骤五:然后在客户端主机中输入 rm -rf known_hosts, 删除该文件
再次重新连接 ssh [email protected] 就会出现yes或者no
步骤六:在客户端打开服务端的文本编辑模式
由此可见客户端可以控制服务端的文本编辑模式了
步骤七:删除刚刚建立的文件
注意:
第一次连接陌生主机的时候需要建立认证文(件~/.ssh/know_hosts文件),所以会询问是否建立,输入yes即可.
再次连接次台主机的时候,由于已经生成~/.ssh/know_hosts文件,因此不需要再次输入yes.
连接成功后并且开启对方的图形编辑模式的连接方式(gedit 、firefox等)
命令格式为: ssh -X [email protected]
具体操作过程如下:
步骤一:连接上以后在客户端主机里面输入firefox打开远程主机(服务端)的图形界面
可见在客户端主机直接输入firefox 并不能打开服务端主机的图形界面
步骤二:先退出文本连接模式,然后再在客户端主机当中输入 ssh -X [email protected],使客户端可以控制服务端主机的图形界面
步骤三:此时在客户端输入firefox就可以控制服务端的图形编辑模式了
(2)远程复制:(将一台主机的上的文件复制到另外一台主机上)
只需要弄清楚二者的ip地址(谁是谁)就可以,然后使用相关命令就可以实现文件远程复制
要保证上传或者下载的文件是存在的
还有上传和下载的路径要写正确,为了防止文件混乱,统一使用绝对路径
此实验不需要客户端主机控制服务端主机(将之前的连接退出exit),只需要知道对方的ip及存在的帐号和密码就可以进行上传和下载
命令格式:scp file [email protected]:dir 上传
将客户端主机上的file文件复制到远程主机的dir (相当于上传文件)
步骤一:在客户端主机的桌面上先建立五个文件 touch file{1…5}
步骤二:在客户端主机中输入 scp /root/Desktop/file{1…5} [email protected]:/root/Desktop/ ,然后回车
可见将客户端的文件上传到了服务端
命令格式:scp [email protected]:file dir 下载
将root ip这台远程主机上的file文件下载到当前主机的dir
重点注意:为了防止错误,所有的路径都采用绝对路径,并且上传或者下载目录的时候加上 -r
步骤一:先将客户端和服务端桌面的所有文件都删掉
步骤二:在服务端的桌面上建立3个文件 touch file{1…3}
步骤三:在客户端主机中输入scp [email protected]:/root/Desktop/file{1…3} /root/Desktop/ ,然后回车
可见将服务端的文件下载到了客户端