关于ssh服务
来源:互联网 发布:刘国梁事件真相知乎 编辑:程序博客网 时间:2024/06/08 10:54
SSH介绍
ssh: secure shell, protocol, 22/tcp, 安全的远程登录
具体的软件实现
OpenSSH: ssh 协议的开源实现,CentOS 默认安装
dropbear :另一个开源实现
SSH 协议版本
v1: 基于CRC-32 做MAC ,不安全;man-in-middle
v2:双方主机协议选择安全的MAC 方式
基于DH 算法做密钥交换,基于RSA 或DSA 实现身份认证
两种方式的用户登录认证:
1、基于password
2、基于key
Openssh
OpenSSH 介绍
相关包
openssh
openssh-clients
openssh-server
工具
基于C/S 结构
Client: ssh, scp, sftp ,slogin
Windows 客户端:xshell,putty,securecrt, sshsecureshellclient
Server: sshd
ssh客户端
客户端组件
ssh
配置文件:
/etc/ssh/ssh_config
Host PATTERN
StrictHostKeyChecking no 首次登录不显示检查提示
格式:ssh [user@]host [COMMAND] ssh [-l user] host [COMMAND] -p port :远程服务器监听的端口 -b: 指定连接的源IP -v: 调试模式 -C :压缩方式 -X: 支持x11 转发 -Y :支持信任x11 转发 ForwardX11Trusted yes -t: 强制伪tty 分配 ssh -t remoteserver1 ssh remoteserver2
允许实现对远程系统经验证地加密安全访问
当用户远程连接ssh 服务器时,会复制ssh 服务器/etc/ssh/ssh_host*key.pub (CentOS7
默认是ssh_host_ecdsa_key.pub )文件中的公钥到客户机的~./ssh/know_hosts
中。下次连接时,会自动匹配相应私钥,不能匹配,将拒绝连接。
ssh服务登录验证
ssh 服务登录验证方式
用户/口令
基于密钥
基于用户和口令登录验证
1 客户端发起ssh 请求,服务器会把自己的公钥发送给用户
2 用户会根据服务器发来的公钥对密码进行加密
3 加密后的信息回传给服务器,服务器用自己的私钥解密,如果密码正确,则用户登录成功
基于密钥的登录方式
1 首先在客户端生成一对密钥(ssh-keygen) )
2 并将客户端的公钥ssh-copy-id 拷贝到服务端
3 当客户端再次发送一个连接请求,包括ip 、用户名
4 服务端得到客户端的请求后,会到authorized_keys中查找,如果有响应的IP 和用户,就会随机生成一个字符串,
例如:acdf
5 服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端
6 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端
7 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录
基于key认证
原理
基于密钥的登录方式:
1 首先在客户端生成一对密钥(ssh-keygen);
2 并将客户端的公钥ssh-copy-id 拷贝到服务端;
3 当客户端再次发送一个连接请求,包括ip 、用户名;
4 服务端得到客户端的请求后,会到authorized_keys中查找,如果有响应的IP
和用户,就会随机生成一个字符串,例如:acdf;
5 服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端;
6 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端;
7 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录。
详细步骤:
基于密钥的认证:
(1) 在客户端生成密钥对
教程:
ssh-keygen -t rsa [-P ”] [-f “~/.ssh/id_rsa”]
(2) 把公钥文件传输至远程服务器对应用户的家目录
ssh-copy-id [-i [identity_file]] [user@]host
(3) 测试
(4) 在SecureCRT 或Xshell 实现基于key 验证
在SecureCRT 工具—> 创建公钥—> 生成Identity.pub 文件转化为openssh 兼容格式(适合SecureCRT ,Xshell 不需要转化格式),并复制到需登录主机上相应文件authorized_keys 中,注意权限 必须为 为600 ,在需登录的ssh 主机上执行:
ssh-keygen -i -f Identity.pub >> .ssh/authorized_keys
(5) 重设私钥口令
ssh-keygen –p
(6) 验证代理(authentication agent )保密解密后的密钥
• 这样口令就只需要输入一次
• 在 在GNOME 中,代理被自动提供给root 用户
• 否则运行ssh-agent bash
(7) 钥匙通过命令添加给代理
ssh-add
我的过程
(1) 在客户端生成密钥对
[root@C6R1 ~]#ssh-keygen -t rsa -P '' -f .ssh/id_rsa Generating public/private rsa key pair. Your identification has been saved in .ssh/id_rsa. Your public key has been saved in .ssh/id_rsa.pub. The key fingerprint is: 0e:f3:41:d6:79:b2:a6:35:98:26:23:c0:cc:ae:0c:e1 root@C6R1 The key's randomart image is: +--[ RSA 2048]----+ | | | + . . | |. = o + . | |.o . o o + | |.E. . = S = | |o. . O = . | |.. + | | | | | +-----------------+ [root@C6R1 ~]#cd .ssh/ [root@C6R1 .ssh]#ls id_rsa id_rsa.pub known_hosts #id_rsa 私钥文件 id_rsa.pub 公钥文件 known_hosts ssh连接的key
(2) 把公钥文件传输至远程服务器对应用户的家目录
[root@C6R1 ~]#ssh-copy-id -i .ssh/id_rsa.pub root@172.18.13.62
.ssh/id_rsa.pub 把公钥文件传给对方主机,
就算写的是私钥文件也只会传给对方私钥文件。
注:私钥文件一定一定一定要保护好。
一般都加口令:ssh-keygen -p
再输入你想设置的密码
等会登陆的时候会验证私钥口令
只需输入一次即可,并且如果批
量管理的话口令都是一样的。
下文会介绍。
(3) 测试
ssh 172.18.13.62 #ssh 对方的IP,并且不需要输入用户名、密码
(4) 在SecureCRT 或Xshell 实现基于key 验证
在SecureCRT 工具—> 创建公钥—> 生成Identity.pub 文件
转化为openssh 兼容格式(适合SecureCRT ,Xshell 不需要转化
格式),并复制到需登录主机上相应文件authorized_keys 中,
注意权限 必须为 为600 ,在需登录的ssh 主机上执行:
ssh-keygen -i -f Identity.pub >> .ssh/authorized_keys
(5) 重设私钥口令 :
ssh-keygen –p
(6) 验证代理(authentication agent )保密解密后的密钥
• 这样口令就只需要输入一次
• 在 在GNOME 中,代理被自动提供给root 用户
• 否则运行ssh-agent bash
(7) 钥匙通过命令添加给代理
ssh-agent bash
#启动代理
ssh-add
#代理是只有启动了才有效,注销或者重启,代理会需要再次输入密码。
- 关于ssh服务
- 关于使用cygwin下的SSH服务
- 关于SSH服务的移植[转]
- 关于SSH服务启动配置和连接
- ssh服务
- ssh 服务
- SSH服务
- ssh服务
- ssh服务
- ssh服务
- ssh服务
- SSH服务
- 关于linux下的ssh服务配置文件的说明
- 关于SSH服务的一些有用的命令
- 关于SSH
- 关于ssh
- 关于SSH
- 关于SSH
- java语法
- 校内训练题 20170916
- C#委托及事件处理机制浅析
- hbuilder快捷键
- 题2
- 关于ssh服务
- 启动vncserver服务,并设置开机自启
- BUG调试技巧
- exit 0 或者 1
- AJAX入门(一)
- 电影集
- 从零开始学_JavaScript_系列(68)——es6模块的使用
- 典型相关分析(CCA)
- HDU 6213 Chinese Zodiac(水题,模拟)