什么是ssh
SSH是一种加密的网络协议,用于在不安全的网络中安全地传输数据。它允许用户通过一个安全的通道连接到远程计算机,并在该通道上执行各种网络服务,例如远程登录和文件传输。
SSH使用公钥加密技术来验证远程计算机的身份,并使用对称加密技术来保护数据传输的机密性
telnet与ssh的区别:
telnet:不安全,没有对传输数据进行加密,容易被监听,还有遭受中间人攻击,telnet不能压缩传输数据,所以传输慢
ssh:对数据进行了加密,安全度高,ssh传输数据经过压缩,所以传输速度比较快
配置秘钥
1.进入linux系统里家目录的.ssh目录下
root用户是/root/.ssh,普通用户是/home/您的用户名/.ssh,我们以root用户为例:#cd .ssh #如果没有 自己创建 权限700
2.执行ssh-keygen命令创建密钥对
ssh-keygen -t rsa -b 2048
参数解析
-b 参数,指定了长度,也可以不加-b参数,直接使用ssh-keygen -t rsa
执行密钥生成命令,基本上是一路回车既可以了,但是需要注意的是:执行命令的过程中是会提示呢输入密钥的密码的,不需要密码直接回车就行。
密钥生成后会在当前目录下多出两个文件,id_rsa和id_rsa.pub,其中id_rsa是私钥(敲黑板:这个很重要,不能外泄),id_rsa.pub这个是公钥
3.创建 authorized_keys 权限为600
chomd 600 authorized_keys
4.将 [公钥]累加到此文件authorized_keys 中
cat id_rsa.pub >> authorized_keys
5.修改sshd的配制文件#vim /etc/ssh/sshd_config
- PasswordAuthentication no 关闭密码输入 (默认yes)
保存退出后重启sshd服务
systemctl restart sshd
设置完成后即可仅使用秘钥登录服务器
服务器中开放端口
背景说明
Centos 系统默认 ssh 连接端口是 22 ,在一些特定的条件中,22 端口被禁用或者被屏蔽,因而无法使用 22 端口进行 ssh 连接,此时把 22 端口映射为其他端口进行 ssh 连接、访问。
注:修改端口也是在sshd的配制文件当中
修改后取消注释重启sshd服务即可生效
安装ssh客户端连接
1.将id_rsa 私钥下载到本地
- 把生成的 /root/.ssh/id_rsa 文件下载到本地电脑
修改端口以后远程连接
修改端口以后远程连接 -p 端口名 远程拷贝-P 端口名
免密互信
生成密钥对后ssh-copy-id 对方ip #将公钥给到需要免密登录的ip
连接
# ssh -p端口 用户@IP地址
改主机名
hostnamectl set-hostname 新名称
bash
查看主机名
hostname
主机名解析vim /etc/hosts
ip+主机名
访问限制
tcppwrapper允许访问
vim /etc/hosts.allw
sshd:IP地址 #默认允许
vim /etc/hosts.deny拒绝访问
sshd:IP地址 |ALL #禁止某ip远程链接,ALL代表所有人
注:如果同个ip同时写入这两个访问限制文件中,优先识别允许
远程拷贝
送
scp 文件名 对方登录系统的用户名@对方ip地址:目标位置
拿
scp 对方登录系统的用户名@对方ip地址:目标位置名称 自己计算机的目标路径