ssh服务
1.ssh是什么?掌握原理
ssh -->secure shell
安全的shell,用来远程管理服务器,网络上传输的内容时进行了加密
ssh 是一个应用层的协议
openssh 是一个软件,底层使用ssh协议来远程管理服务器,这个软件是开源免费的,主要在linux和unix中使用。windows不使用。
ssh基于公钥加密(非对称加密)
- 数据加密传输
- 客户端和服务器的身份验证
公钥(public key)和私钥(private key)
- 两者成对出现,两个互不相同,可以互相加密和解密
- 不能根据一个密钥推算另外一个
- 公钥对外公开,私钥只有私钥的持有人知道
- 私钥应该由密钥的持有人妥善保管
使用:
- 发送方使用接收方的公钥加密数据
- 接收方使用自己的私钥解密数据
- 数据加密可以保证所发送数据的机密性
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wSfh7YRQ-1597978210040)(file:///C:\Users\Administrator\Documents\Tencent Files\2420243437\Image\Group2$7\HL$7HLPZK[OMDLTQY[I20QLOX.jpg)]
密钥的两个功能:
- 数据加密
- 数字签名
web网站 --》http 80,https 443
telnet协议 --》明文–》用来远程管理 23
ssh–》端口 22
ssh-- 》openssh --》ssh协议
2.安装配置,调试,排错
rpm -ql openssh
rpm -qa|grep openssh
rpm -pa 查询本机安装过的所有软件包
-q query
-a all
openssh软件默认在centos678系统里已经安装,不需要安装了
3.修改配置文件–》记配置项
cd /etc/ssh
man sshd_config
man 5 sshd_config 查看每一项配置的详细情况
port 22 表示端口号
安全措施
- 修改端口号
- 禁用root用户登录
- 使用密钥认证
- 将密码尽量设置复杂
- iptables
- tcp wrappers(centos 6)
ListenAddress 0.0.0.0 监听本地所有接口的IP地址,就是在本地所有的ip都提供ssh服务(监听的ip地址)
PermitRootLogin no 不能通过root用户登录,只能使用普通户用登录
通过普通用户如何使用高权限?
- sudo
- su 切换用户
修改配置文件后需要重启才能生效。
两种认证方式
- 密码认证–》/etc/passwd /etc/shadow PasswordAuthentication yes
- 密钥认证 --》sshd里的密钥认证 PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys 保存公钥的文件目录
客户机使用ssh第一次连接服务器时,将服务器上的sshd守护进程的公钥复制到本地
存放在本地~/.ssh/known_hosts目录
ssh常用命令
scp:远程复制
ssh:远程登录
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UCFAVHwH-1597978210043)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1594630019270.png)]
sftp
日志
建立免密通道(做信任)
ssh-keygen -t ecdsa 生成一对密钥对 分公钥和私钥 存放在~/.ssh目录中 类型为ecdsa
[root@localhost ~]# ssh-keygen -t ecdsa
Generating public/private ecdsa key pair.
Enter file in which to save the key (/root/.ssh/id_ecdsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_ecdsa.
Your public key has been saved in /root/.ssh/id_ecdsa.pub.
The key fingerprint is:
SHA256:xJ9c+dOaWe9WENBDpKDJkQEiatRZPHMFg4mBadCn5IU root@localhost.localdomain
The key's randomart image is:
+---[ECDSA 256]---+
|oo=oB.++=+. .=o |
|.=E=oB +o+ . o+ |
|o+ + + * + o |
|. o . o o ... |
| S + o.o|
| *o|
| + o|
| ..|
| ..|
+----[SHA256]-----+
[root@localhost ~]# cd .ssh
[root@localhost .ssh]# ls
authorized_keys id_ecdsa id_ecdsa.pub known_hosts
[root@localhost .ssh]# ssh-copy-id -i id_ecdsa.pub root@39.106.174.171
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "id_ecdsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@39.106.174.171's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@39.106.174.171'"
and check to make sure that only the key(s) you wanted were added.
[root@localhost .ssh]# ssh 39.106.174.171
Last failed login: Mon Jul 13 16:48:21 CST 2020 from 222.247.211.18 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Mon Jul 13 16:39:25 2020 from 222.247.211.18
Welcome to Alibaba Cloud Elastic Compute Service !
ssh-copy-id -i id_ecdsa.pub root@39.106.174.171 将生成的公钥传给服务器,做完这一步就可以通过ssh免密连接到服务器(39.106.174.171)上
免密通道是实现一台客户机控制多台服务器的有效手段
单向(双向)信任
Elastic Compute Service !
ssh-copy-id -i id_ecdsa.pub root@39.106.174.171 将生成的公钥传给服务器,做完这一步就可以通过ssh免密连接到服务器(39.106.174.171)上
免密通道是实现一台客户机控制多台服务器的有效手段
单向(双向)信任