一. SSH
全称“安全外壳”
在SSH以前,远程字符界面的登录,使用的是Telnet(端口号:TCP23)。Telnet明文传输数据,不安全。
SSH(端口号:22)密文传输数据,更加安全。
二. 两种登录验证方式
基于C/S。
1.基于口令的方式
(1) 客户端开启一个随机端口,连接服务器端的22号端口
(2) 服务器端将公钥(用于加密数据)发给客户端
(3) 客户端接收到公钥后,使用公钥将登录的用户名及密码加密后发送给服务器端
(4) 服务器端接收到加密的数据,使用私钥(用于解密数据进行解密后,获取到客户端发来的用户名和密码,
检查无误后,客户端即可登录服务器
2.基于密钥对的方式
(1) 在客户端生成公钥和私钥,将公钥发送给服务器端
(2) 客户端登录服务器端,会开启一个随机的端口,连接服务器的22号端口,并发送登录请求
(3) 服务器端会生成一串随机数,使用客户端发来的公钥进行加密,将加密后的数据发送给客户端
(4) 客户端接收到服务器端发送过来的数据后,使用私钥进行解密,并将解密后的数据发送给服务器端
(5) 服务器端将收到的数据随机数进行比较,如果一致,则允许客户端登录
三. 配置SSH服务器
1.安装软件
注:如果在安装操作系统是时,选择了安装“基础设施服务器”,则ssh相关软件已经安装
如果出现登录不上的情况,卸载软件在重新安装(输入下面的命令)
yum -y install openssh openssh-server openssh-clients
2.启动服务
注:默认ssh的服务sshd已经开启,并且是开机自启
查看sshd服务器端口号
netstat -lantu | grep 22
losf -i tcp:22
四:在客户端登录服务器
ssh 用户名@服务器IP/主机名
例:以root账户的身份登录ssh服务器
ssh root@192.168.10.1
退出登录 exit
五:设置服务器的登录权限
1.允许指定账户登录
修改服务器端配置文件:vim /etc/ssh/sshd_config
在文件末尾添加:allowusers 用户名
注:只允许该用户登录,其他用户均不能登录
允许多个用户登录:allowusers 用户1 用户2
2.拒绝指定账户登录
修改服务器端配置文件:vim /etc/ssh/sshd_config
在文件末尾添加:denyusers 用户名
注:只禁止该用户登录,其他用户均可以登录
禁止多个用户登录:denyusers 用户1 用户2
3.允许指定账户从指定主机登录
修改服务器端配置文件:vim /etc/ssh/sshd_config
在文件尾添加:allowusers 用户名@主机IP/主机名
4.通过/etc/hosts,allow和/etc/hosts.deny控制用户通过ssh服务器登录
/etc/hosts.allow中的用户可以通过指定协议登录到当前主机
sshd:主机名IP/主机名 sshd:ALL
/etc/hosts.deny中的用户不可以通过指定协议登录到当前主机
sshd:主机IP/主机名 sshd:ALL
例:/etc/hosts.allow中追加:sshd:192.168.3.2
/etc/hosts.deny中追加:sshd:ALL
代表只有192.168.3.2可以通过ssh协议连接到本机
六:使用基于密钥的方式登录ssh服务器
1.在客户端生成秘钥对
ssh-keygen
注:生成的公钥为id_rsa.pub,私钥为id_rsa保存在~/.ssh目录下
~/.ssh目录下的known_hosts保存其他主机发来的公钥(基于口令方式登录的公钥)
2.客户端将生成的公钥发送到服务器端
ssh-copy-id root@192.168.1.1
注:服务器端将客户端发来的公钥保存至~/.ssh/authorized_keys文件中
3.在客户端登录测试
ssh root@192.168.1.1
七:ssh的其他应用
1.sftp
sftp 用户名@主机IP/主机名
例:在客户端登录服务器
sftp root@192.168.1.1
2.scp
将本地指定目录下的文件copy至远程服务器的指定目录上
scp 文件所在的目录/文件 用户名@服务器IP/主机名:目录
将远程服务器上指定目录的文件copy本地
scp 用户名@服务器IP/主机名:/目录/文件 目录下
例:将192.168.1.1上/root/f1文件copy到本机/root
scp root@192.168.1.1:/root/f1 /root
将本机/root/f2文件copy到192.168.1.1上的/root下
scp /root/f2 root@192.168.1.1:/root
八:ssh服务问题
如果ssh服务器的sshd服务在运行状态,但客户端无法通过ssh协议登录到服务器,
这时检查/etc/ssh目录下的文件打下(ll -h),如果有空文件,可以将ssh相关软件重装即可
全称“安全外壳”
在SSH以前,远程字符界面的登录,使用的是Telnet(端口号:TCP23)。Telnet明文传输数据,不安全。
SSH(端口号:22)密文传输数据,更加安全。
二. 两种登录验证方式
基于C/S。
1.基于口令的方式
(1) 客户端开启一个随机端口,连接服务器端的22号端口
(2) 服务器端将公钥(用于加密数据)发给客户端
(3) 客户端接收到公钥后,使用公钥将登录的用户名及密码加密后发送给服务器端
(4) 服务器端接收到加密的数据,使用私钥(用于解密数据进行解密后,获取到客户端发来的用户名和密码,
检查无误后,客户端即可登录服务器
2.基于密钥对的方式
(1) 在客户端生成公钥和私钥,将公钥发送给服务器端
(2) 客户端登录服务器端,会开启一个随机的端口,连接服务器的22号端口,并发送登录请求
(3) 服务器端会生成一串随机数,使用客户端发来的公钥进行加密,将加密后的数据发送给客户端
(4) 客户端接收到服务器端发送过来的数据后,使用私钥进行解密,并将解密后的数据发送给服务器端
(5) 服务器端将收到的数据随机数进行比较,如果一致,则允许客户端登录
三. 配置SSH服务器
1.安装软件
注:如果在安装操作系统是时,选择了安装“基础设施服务器”,则ssh相关软件已经安装
如果出现登录不上的情况,卸载软件在重新安装(输入下面的命令)
yum -y install openssh openssh-server openssh-clients
2.启动服务
注:默认ssh的服务sshd已经开启,并且是开机自启
查看sshd服务器端口号
netstat -lantu | grep 22
losf -i tcp:22
四:在客户端登录服务器
ssh 用户名@服务器IP/主机名
例:以root账户的身份登录ssh服务器
ssh root@192.168.10.1
退出登录 exit
五:设置服务器的登录权限
1.允许指定账户登录
修改服务器端配置文件:vim /etc/ssh/sshd_config
在文件末尾添加:allowusers 用户名
注:只允许该用户登录,其他用户均不能登录
允许多个用户登录:allowusers 用户1 用户2
2.拒绝指定账户登录
修改服务器端配置文件:vim /etc/ssh/sshd_config
在文件末尾添加:denyusers 用户名
注:只禁止该用户登录,其他用户均可以登录
禁止多个用户登录:denyusers 用户1 用户2
3.允许指定账户从指定主机登录
修改服务器端配置文件:vim /etc/ssh/sshd_config
在文件尾添加:allowusers 用户名@主机IP/主机名
4.通过/etc/hosts,allow和/etc/hosts.deny控制用户通过ssh服务器登录
/etc/hosts.allow中的用户可以通过指定协议登录到当前主机
sshd:主机名IP/主机名 sshd:ALL
/etc/hosts.deny中的用户不可以通过指定协议登录到当前主机
sshd:主机IP/主机名 sshd:ALL
例:/etc/hosts.allow中追加:sshd:192.168.3.2
/etc/hosts.deny中追加:sshd:ALL
代表只有192.168.3.2可以通过ssh协议连接到本机
六:使用基于密钥的方式登录ssh服务器
1.在客户端生成秘钥对
ssh-keygen
注:生成的公钥为id_rsa.pub,私钥为id_rsa保存在~/.ssh目录下
~/.ssh目录下的known_hosts保存其他主机发来的公钥(基于口令方式登录的公钥)
2.客户端将生成的公钥发送到服务器端
ssh-copy-id root@192.168.1.1
注:服务器端将客户端发来的公钥保存至~/.ssh/authorized_keys文件中
3.在客户端登录测试
ssh root@192.168.1.1
七:ssh的其他应用
1.sftp
sftp 用户名@主机IP/主机名
例:在客户端登录服务器
sftp root@192.168.1.1
2.scp
将本地指定目录下的文件copy至远程服务器的指定目录上
scp 文件所在的目录/文件 用户名@服务器IP/主机名:目录
将远程服务器上指定目录的文件copy本地
scp 用户名@服务器IP/主机名:/目录/文件 目录下
例:将192.168.1.1上/root/f1文件copy到本机/root
scp root@192.168.1.1:/root/f1 /root
将本机/root/f2文件copy到192.168.1.1上的/root下
scp /root/f2 root@192.168.1.1:/root
八:ssh服务问题
如果ssh服务器的sshd服务在运行状态,但客户端无法通过ssh协议登录到服务器,
这时检查/etc/ssh目录下的文件打下(ll -h),如果有空文件,可以将ssh相关软件重装即可