SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。
SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。
利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。
SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。
几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
建立两个虚拟机:desktop(客户端)server(服务端)
分别在两台虚拟机中配置 ip 和 更改主机名称
nm-connection-editor ##配置客户端和服务端
1、首先,设置客户端的ip,(已知自己主机的ip为172.25.75),发现在设置ip为172.25.254.275(在原ip上加200),保存不了。
于是设置ip为172.25.254.95(在原ip上加20),保存。
2、在查询自己的ip是否为自己所想
3、更改主机名称,并删除原有的文件,保证实验环境干净。
同理,可设置服务端的。
我们将服务端的ip写为172.25.254.175(在原ip上加100)
将客户端改为黑底绿字,便于区分两台虚拟机。
1、文本建立的连接方式
客户端连接服务端且可以操作服务端文本模式功能
ssh username@ip ##username为被连接的主机的存在的任意用户,ip是被连接的主机的地址。
示例:
若第一次连接的话会问yes或者no,输入yes,然后输入密码(server主机的密码)然后exit退出,如果连接过,则直接输入密码登录,没有yes、no的提示。
原因: 第一次连接陌生主机的时候需要建立认证文件( ~/.ssh/know_hosts 文件),所以会询问是否建立,输入yes即可.再次连接次台主机的时候,由于已经生成~/.ssh/know_hosts文件,因此不需要再次输入yes.
即可远程建立文件,但发现不可远程打开Firefox。
2、开启对方的图形编辑模式的连接方式
sshd -X username@ip
1)scp file username@ip:dir ##远程上传
为什么要进行免密操作?
如果客户端知道服务端主机的ip地址和密码,就可以远程操控服务端
如果任意一个客户端知道服务端主机的ip地址和密码,并且知道它里面的重要文件存放路径
那么就可以拷贝服务端的文件
这样的操作在实际企业当中非常不安全
怎样进行免密操作?
采用钥匙和锁的方式,服务端想让客户端什么时候连就什么时候连
1、
ssh-keygen ##生成钥匙和密码
输入 ssh-keygen 三次回车(也可以不回车)
第一次回车是钥匙和密码存放路径(可以直接回车,存放在默认路径下)
第二次回车是密码(可以直接回车,不设置密码)
第三次回车也是密码(可以直接回车,不设置密码)
发现在/root/.ssh出现了两个文件
2、
ssh-copy-id -i /root/.ssh/id_rsa.pub username@ip ##给哪个上锁,ip就为哪个的ip
发现/root/.ssh下生成了一个新文件 authorized_keys
文件authorized_keys和文件id_rsa.pub相同
3、
scp /root/.ssh/id_rsa username@ip:/root/.ssh/
示例:把密钥拷贝到客户端
进入发现还是需要输入密码,这是因为配置文件没有修改。
4、
vim /etc/ssh/sshd_config ##修改配置文件
示例:进入/etc/ssh/sshd_config
将yes改为no
重启服务
在客户端的/root/.ssh中出现了id_rsa
ifconfig eth0 查询验证
注意:
authorized_keys 的名字时,从客户端无法进入服务端。
ssh-keygen -f /root/.ssh/id_rsa -P ""
-f ##指定文件的名称
-P ##密码
setenforce 0 (临时生效可以直接用setenforce 0 )
getenforce (检查)
systemctl stop firewalld (关闭火墙)
netstat -antlupe |grep sshd 查看系统的接口
vim /etc/ssh/sshd_config
port 8888 (将系统的端口改为8888)
systemctl restart sshd.service(每改完后都必须执行此操作)
ssh userename@ip -p 8888
ListenAddress ip #ip即为指定的ip
白名单(只允许此用户登陆)