SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)
SSH是一种网络协议,用于计算机之间的加密登录。如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。最早的时候,互联网通信都是明文通信,一旦被截获,内容就暴露无疑。1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为Linux系统的标准配置。SSH只是一种协议 ,它是自由软件,应用非常广泛。
准备两台linux虚拟机:
服务器:192.168.100.101
客户机:192.168.100.102
1:客户机
#ssh root@192.168.100.101 //在linux远程访问192.168.100.101
sshd服务是默认允许root用户登录的 但这是非常不安全的
普遍的做法是:先登录普通用户 根据实际需求使用su 切换root用户
2:服务器
下面设置 禁止root用户登录
vim /etc/ssh/sshd_config //(ssh主配置文件)
PermitRootLogin no // 拒绝root 用户登录
Allowusers zzz zkc //只允许zzz zkc 用户登录
service sshd restart //重启服务
3:服务器
创建一个用户zzz (我系统里有个zkc用户了)
但此时zzz zkc 用户 都能使用su 切换到root用户 所以不是很安全
所以下面配置 : 禁止普通用户切换root用户 只给zzz 用户切换root 的权限
#gpasswd -a zzz wheel //将zzz 加入wheel
#vi /etc/pam.d/su //认证配置
auth required pam_wheel.so use_uid //去掉此行开头的 # 号
4:到客户机 上测试下 成功
ssh @root192.168.100.101 无法登录
ssh @zkc192.168.100.101 可以登录 无法切换root
ssh @zzz192.168.100.101 可以登录 可以切换
5:切换到ssh服务器上
配置SSH密钥
#vi /etc/ssh/sshd_config //编辑sshd_config
PubkeyAuthentication yes //启用密钥对验证
AuthorizedKeysFile .ssh/authorized_keys //指定公钥数据文件
service sshd restart //重启sshd服务
6:回到客户机上
useradd benent //创建用户benet
passwd benet //设置benet用户密码
su - benet //切换用户到benet
ssh-keygen -t rsa //创建密钥对
(设置私钥短语 确认私钥短语)
ls -a /home/benet/.ssh // 查看私钥位置(密钥文件为隐藏文件 用 -a)
cd /home/benet/.ssh //到私钥存放目录
7:ssh-copy-id -i id_rsa.pub zhangsan@192.168.100.101 //将公钥上传到服务器
( 公钥在服务器的 /home/zzz/.ssh 下面)
ssh zzz@192.168.100.101 //使用ssh登录服务器上的zzz 用户
(此时只要输入私钥短语就能登录了)
//在客户机上设置ssh 代理功能 不需要设置密码就能访问//
ssh-agent bash
ssh-add
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。