soul颠覆了执着

导航

ssh服务简介及应用与服务的进程的类型

SSH ,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。

默认端口号:22  

客户端:openssh-client     服务端:openssh(linux系统默认客户端,服务端都安装了

dropbear:非开源版的ssh

ssh的客户端可以用 XSHELL,Securecrt, Mobaxterm等工具进行连接

ssh的功能

1.远程登录
2.文件传输
3.功能共享
(都是加密实现)

两个认证
     客户端验证服务器端
     服务器端对客户端的做验证


ssh独立守护进程服务(以centos6为例)
# service sshd start|stop|restart|status
# chkconfig sshd on

客户端在收到服务器段的公钥之后,会生成一个密钥对,然后基于这个密钥实现安全传输
1. 当服务器端启动了ssh,那么就会自动生成一个密钥对
2. 当服务器端收到用户连接请求,那么就将公钥文件发送给客户端
3. 客户端将收到的公钥文件保存 ~/.ssh/known_hosts
下次登录时候,如果有目标主机的公钥文件,那么就是对于目标服务器的认证完成
下次登录时候,如果有目标主机的公钥不存在文件或者信息有误,那么就是对目标服务器的认证失败
4. 客户端保存了服务器端公钥文件后,会立刻产生一个私钥文件,构成一个密钥对,然后用公钥文件加密密钥对,然后将加密的数据传递到服务器端。服务器端解密以后,也就有了这样的一个密钥对。
5. 双方基于这个密钥对来通信

ssh基于c/s架构
客户端:
linux下客户端:ssh,配置文件:/etc/ssh/ssh_config

服务器端;
名称:sshd,配置文件:/etc/ssh/sshd_config

 linux下ssh客户端的使用方法

格式

ssh [-p port] [user@]host [command]

服务器段的配置文件(常用配置)
Port 22 指定sshd服务所监听的端口
ListenAddress 0.0.0.0 指定sshd服务所监听的IP
UseDNS yes|no 指定是否将主机名称做解析
PermitRootLogin yes|no 指定是否运行root登录系统

基于密钥方式登录系统

1. 在用户的家目录中提前准备密钥文件(公钥)
2. 登录的时候,客户端会将公钥文件发送给服务器端,然后服务器会做比对两个公钥,如果比对成功,会向客户端发送一个质询(该质询是用传输密钥对中的公钥加密)
3. 客户度收到这个质询之后,会进行解密,然后将解密的结果发送给服务器端

 

案例:实现密钥方式登录系统
规划
server:10.220.5.63
client:10.220.5.67

1.在客户端器端创建一个密钥对

-t rsa 指定加密算法

[root@67 ~]# ssh-keygen -t rsa        
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): <<<密钥对的保存位置
/root/.ssh/id_rsa already exists.
Enter passphrase (empty for no passphrase): <<<对密钥对加密密码
Enter same passphrase again:  <<<确认密码
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:iOndEAzGN3gx6OW8NtxoqRQ5oXEqtfb7besGUqKfpDc root@67managerslave
The key's randomart image is:
+---[RSA 2048]----+
|   .ooo.         |
|  o.*o=.         |
| . B Oo.         |
|. = *o+o         |
| o oo*o=S        |
|  ..=.Xo.        |
|   =.B.o.        |
|  . E  .o        |
|   . o.++.       |
+----[SHA256]-----+

2.查看秘钥对

id_rsa       私钥文件

id_rsa.pub   公钥文件

[root@67 ~]# ls /root/.ssh
id_rsa  id_rsa.pub

3.传送公钥到服务器端主机

[root@67 ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@10.220.5.63
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@10.220.5.63'
Number of key(s) added: 1
Now try logging into the machine, with:   "ssh 'root@10.220.5.63'"
and check to make sure that only the key(s) you wanted were added.

说明:
-i:指定要传输的密钥文件
root@10.220.5.63:指定传输到哪个主机上面
传递到目标主机之后,公钥文件会被重命名为authorized_keys,该文件的权限必须600

3.在客户端可以直接登录服务器端

[root@67 ~]# ssh 10.220.5.63
Last failed login: Sun Nov  4 02:00:26 CST 2018 from 10.220.5.67 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Sun Nov  4 00:16:27 2018 from 10.220.5.70
[root@63 ~]# <<<已登录

linux ssh客户端工具

ssh  作用:远程登录或者远程执行命令
   格式:ssh -p 端口 用户@主机 [命令]
scp   作用:传输文件
格式:
推送:scp /path/file user@host:/path
拉取:scp user@host:/path/file /path
选项
-P 端口:指定端口号
-r:递归传输一个目录及其内部的文件
-p:保留文件的属性不变
-v:显示传输过程信息
-l:限制传输速率

总结:实现给多个主机分发文件
1. 发送端需要有私钥文件
2. 所有的接收端需要有公钥文件
3. 所有节点都需要有相同的用户
4. 公钥文件和私钥文件必须有正确的权限

ssh登录缓慢
启用对主机名做反解
方式1:修改配置文件,禁止做反解 UseDns no
方式2:修改 /etc/hosts 添加一个主机名称的解析记录
方式3:ssh -v 查看登录过程信息,判断故障点

将一个文件传递到非用户家目录下,默认是没有权限,解决方式
1. 用root身份执行操作
2. 用suid
3. 分两步走,
第一步:先传递到目标主机的用户的家目录中
第二步:远程执行命令,将目标主机家目录中哪个文件移动到目标位置(依赖sudo)


案例:web1用scp将文件a.txt传递到web2的/root下(以tom身份来传输文件)
第一步:在web2上为tom做sudo授权
# visudo
tom ALL=() /bin/mv

第二步:在web1上执行scp,将a.txt传递到web2主机的/home/tom下
# scp a.txt tom@web2:/home/tom

第三步:在web1上执行ssh,将a.txt从tom家目录中移动到root下
# ssh -t tom@web2 sudo mv /home/tom/a.txt /root/

ssh相关的操作日志
/var/log/secure


生产环境中,实现文件批量分发方案有
1:基于ssh key+shell
优点:简单
缺点:节点数量几百台为宜
2:puppet
优点:功能强大、支持节点数量很多
缺点:操作复杂
3:saltstack
以上两者的折中方案
4:ftp/http+crotab
非主流方案

posted on 2018-11-15 21:10  soul颠覆了执着  阅读(515)  评论(0编辑  收藏  举报