文章目录
SSH协议
是一种安全通道协议
对通信数据进行加密处理
远程登录协议
-
ssh 密文传输 使用TCP22号端口
-
telnet 明文传输 使用TCP23号端口
ssh协议常用软件
-
SSH客户端常用软件:Putty、Xshell、CRT
-
SSH服务端常用软件:OpenSSH
OpenSSH是实现SSH协议的开源软件项目,适用于UNIX、Linux操作系统
CentOS7 系统默认已安装 openssh 相关软件包,并已将 sshd 服务添加为开机自启动
sshd 服务默认使用的是TCP的22号端口
ssh服务端配置
sshd 服务默认配置文件是/etc/ssh/sshd_config
命令设置
通过命令连接
ssh -p 端口 用户@IP
允许用户登录(白名单)
创建用户并设置密码
useradd xxx
echo aaa | passwd --stdin xxx
指定用户登录
ssh 用户@IP -p 端口
禁止用户登录(黑名单)
SSH验证方式
-
密码验证
对服务器中本地系统用户的登录名称、密码进行验证。简便,但可能被暴力破解。 -
密钥对验证
要求提供相匹配的密钥信息才能通过验证。通常先在客户端中创建一对密钥文件(公匙、私匙),然后将公匙文件放到服务器中的指定位置。远程登录时,系统将使用公匙、私匙进行加密、解密关联验证。能增强安全性,且可以免交互登录。
公钥和私钥的关系:
公钥和私钥是成对生成的,这两个密钥互不相同,可以瓦相加密和解密。
不能根据一个密钥来推算出另一个密钥。
公钥对外公开,私钥只有私钥的持有人才知道。
当密码验证、密钥对验证都启用时,服务器将优先使用密钥对验证。可根据实际情况设置验证方式。打开 vim /etc/ssh/sshd_config
- PasswordAuthentication yes
#启用密码验证 - PubkeyAuthentication yes
#启用密钥对验证 - AuthorizedKeysFile .ssh/authorized_keys
#指定公钥库文件
scp远程复制
- scp -P 端口 [-r] 用户@IP:绝对路径 本机目录/文件
#下行复制 - scp -P 端口 [-r] 本机文件/目录 用户@IP:绝对路径
#上行复制
ssh密钥对配置
- 客户端 ssh的发起端:ssh-keygen -t rsa/ecdsa
创建密钥对,在自己家目录的.ssh目录中生成私钥和公钥文件(xxx.pub)
ssh-copy-id -i 目标主机用户@目标主机IP/主机名 - 服务端 按ssh连接端 在指定用户家目录的.ssh目录中生成公钥认证文件authorized_keys
从此客户端使用ssh [-P 端口] 用户@IP 使用密钥对的密码验证
ssh密钥对免交互登录
-
使用没有密码的密钥对
ssh-keygen -t rsa/ecdsa 一路回车,不设置密码
ssh-copy-id -i 公钥文件 目标主机用户@目标主机IP/主机名 -
创建ssh会话代理(只能在当前话会生效)
ssh-agent bash
ssh-add