目录
前言
- 大多数企业服务器是通过远程登录的方式来进行管理的
- 当需要从一个工作站管理数以百计的服务器主机时,远程维护的方式将更占优势
一、SSH
SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。SSH协议对通信双方的数据传输进行加密处理,其中包括用户登录时输入的用户口令。比以往的Telnet(远程登录)、RSH(远程执行命令)等传统的方式相比,SSH协议提供了更好的安全性。
SSH客户端:Puutty、Xshell、CRT、MobaXterm
SSH服务端:OpenSSH
SSH服务端功能:ssh远程链接和sftp服务
作用:SSHD服务使用SSH协议可以用来远程控制,或在计算机之间传输文件;相比较之前用Telent方式来传输文件要安全的很多,因为Telent使用明文传输,SSH是加密传输。
默认监听端口: 22
OpenSSH:服务名称:sshd
服务端主程序:/usr/sbin/sshd
服务端配置文件:/etc/ssh/sshd_config
二、SSH远程登录方式
1、ssh的服务登录验证方式
用户/口令
基于密钥
2、基于用户和口令登录验证
客户端发起ssh请求,服务器会把自己的公钥发送给用户
用户会根据服务器发来的公钥对密码进行加密
加密后的信息回传给服务器,服务器用自己的私钥解密,如果密码正确,则用户登录成功
[root@localhost ~]# vim /etc/ssh/sshd_config
LoginGraceTime 2m //登录验证时间为2分钟
PermitRootLogin yes //禁止使用root登录
StrictModes yes
MaxAuthTries 6 //重试次数6次
MaxSessions 10
PermitEmptyPasswords no //禁止空密码登录用户
[root@localhost ~]# systemctl restart sshd
3、基于密钥的登录方式
首先在客户端生成一对密钥(ssh-keygen)
并将客户端的公钥ssh-copy-id 拷贝到服务端
当客户端再次发送一个连接请求,包括ip、用户名
服务端得到客户端的请求后,会到authorized_keys中查找,如果有响应的IP和用户,就会随机生成一个字符串,例如:acdf
服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端
得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端
服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录
[root@localhost ~]# vim /etc/ssh/sshd_config
PasswordAuthentication yes //启用密码验证
PubkeyAuthentication yes //启用密钥对验证
AuthorizedKeysFile .ssh/authorized_keys //指定公钥库文件
[root@localhost ~]# systemctl restart sshd
三、使用SSH客户端程序
1、ssh命令–远程安全登录
命令基本格式
ssh user@host
例如
[root@55~]# ssh root@192.168.197.142 '以root用户登录对方主机'
The authenticity of host '192.168.197.142 (192.168.197.142)' can't be established.
ECDSA key fingerprint is SHA256:Eer6tAEbaZylH0v8F1nr+ShthK1rjZl3eRi7UTw4RX4.
ECDSA key fingerprint is MD5:de:d7:cf:23:bd:8d:a1:02:ff:23:a2:4b:94:fe:e7:02.
Are you sure you want to continue connecting (yes/no)? yes '输入yes'
Warning: P