利用OpenSSH实现基于秘钥的认证
SSH协议介绍:
SSH是Secure Shell的缩写,意思是安全的shell
目前版本有 ssh v1和ssh v2:在目前工作中大多都使用ssh v2版,ssh v1已经不安全,尽量不使用
ssh v1:基于CRC-----32做MAC(Message Authentication Code),不安全
ssh v2:基于双方主机的协商最安全的MAC的方式;基于DH算法做秘钥交换;基于RSA或DSA实现身份认证;客户端通过检查服务器端的主机秘钥来判断是否能够将继续通信
有两种认证方式:
基于口令
基于RSA或DSA秘钥
软件:openssh
openssh是ssh协议的一种开源实现,使用openssl实现基于RSA或DSA的秘钥认证
一、环境准备
1、两台linux主机,分别是192.168.10.203和192.168.10.120, 使192.168.10.203做为服务器端,192.168.10.120做为客户端
2、安装软件
在服务器端安装ssh服务端和ssh客户端
在客户端安装ssh客户端
3、安装后生成的文件:
服务端:
客户端:
二、配置rsa秘钥(在客户端配置)
1、生成rs秘钥
方法一:
方法二:不需要交互,方便在编写shell时使用
命令解释
# ssh-keygen -t rsa -P ‘‘ -f ~/.ssh/id_rsa
ssh-kegen: openssh秘钥生成工具
-t rsa| dsa: 指定秘钥类型
-f /path/to/somfie: 指定生成秘钥的存储位置
2、将客户端的公钥传给服务器端
3、在服务器端查看客户端传递过来的公钥信息
4、登录验证;此时只需要使用用户而不需要输入密码即可登录服务器端
三、使用小技巧
利用openssh黑白名单限制用户登录
1、条件两个用户centos和ferdora
2、测试确保两用户都可以正常登录服务器
3、修改服务器配置文件:/etc/ssh/sshd_config,在最后添加一下信息
AllowUsers root centos
4、重启sshd服务进行验证:
服务器端重启sshd服务
客户端连接测试:
四、openssh客户端组件的使用方法
安装openssh-clients,openssh-server软件包后,会产生scp、sftp、以及ssh客户端组件,这里只介绍scp、sftp客户端组件
1、scp客户端组件:
利用ssh协议在主机之间实现安全文件传输
命令格式:
scp [options] SRC ........ DEST/
scp有两种格式:
PULL: scp [options] [USER@]HOST:/path/from/somefile /path/to/somewhere
PUSH: scp [opitons] /path/form/somefile [USER@]HOST:/path/to/somewhere
options常用选项有以下几种:
-r: 递归复制,复制目录时使用
-p:保持源文件的元数据信息;主要是mode和timestamp
-q:静默模式
-P PORT: 指定远程服务器的端口
2、sftp客户端组件:
sftp功能:基于ssh协议实现的ftp客户端程序,sshd(服务器端)自带sftp程序
使用方法:
sftp [USER@]HOST
本文出自 “jingfu” 博客,请务必保留此出处http://jingfu.blog.51cto.com/6184921/1649883
原文地址:http://jingfu.blog.51cto.com/6184921/1649883