五.ssh远程管理服务

 

01. 远程管理服务知识介绍
1) SSH远程登陆服务介绍说明
SSH是Secure Shell Protocol的简写,由 IETF 网络工做小组(Network Working Group)制定;
在进行数据传输以前,SSH先对联机数据包经过加密技术进行加密处理,加密后在进行数据传输。
确保了传递的数据安全。
SSH是专为远程登陆会话和其余网络服务提供的安全性协议。
利用SSH协议能够有效的防止远程管理过程当中的信息泄露问题,在当前的生产环境运维工做中,
绝大多数企业广泛采用SSH协议服务来代替传统的不安全的远程联机服务软件,如telnet(23端口,非加密的)等。
在默认状态下,SSH服务主要提供两个服务功能:

2) SSH远程登陆服务功能做用
 a 一是提供相似telnet远程联机服务器的服务,即上面提到的SSH服务;
 b 另外一个是相似FTP服务的sftp-server,借助SSH协议来传输数据的,提供更安全的SFTP服务(vsftp,proftp)。

3) SSH远程登陆服务排错思路
   01. 检查链路是否通畅---ping(icmp)/tracert/traceroute
   02. 检查链路是否阻断---将防火墙功能关闭
   03. 检查服务是否开启---ss/netstat -lntup(服务端检查) /telnet/nmap/nc(客户端检查)安全

服务开启没有服务器

      

02. Telnet远程登陆服务功能做用  
SSH远程登陆服务特色说明
Telnet远程登陆服务功能做用

03. 远程管理服务概念详解
1)SSH远程管理服务加密技术
ssh链接登陆过程
①. ssh客户端发出链接请求网络

清空 >/root/.ssh/known_hosts
②. ssh服务端会发出确认信息,询问客户端你是否真的要链接我
③. ssh客户端输入完成yes,会等到一个公钥信息
cat /root/.ssh/known_hosts运维

服务端公钥dom

④. ssh服务端将公钥信息发送给ssh客户端
⑤. ssh客户端利用密码进行登陆
ssh

加密技术分为v1和v2两个版本
sshv1版本不会常常更换锁头和钥匙,所以会有安全隐患
sshv2版本会常常更换锁头和钥匙,所以提升了远程链接安全性

2)SSH远程管理服务认证类型ide

基于密钥方式实现远程登陆
    ①. ssh管理服务器上建立密钥对信息(公钥 私钥)
    ②. ssh管理服务器上将公钥发送给被管理服务器
    ③. ssh管理服务器向被管理服务器发送链接请求
    ④. ssh被管理服务器向管理服务器发送公钥质询
    ⑤. ssh管理服务器处理公钥质询请求,将公钥质询结果发送给被管理主机
    ⑥. ssh被管理服务器接收公钥质询响应信息,从而确认认证成功
    ⑦. ssh管理服务端能够和被管理服务端创建基于密钥链接登陆

04. 基于密钥登陆方式部署流程
第一个里程:在管理主机上建立密钥对信息
ssh-keygen -t dsa <-- 建立密钥对命令 -t dsa表示指定密钥对加密类型
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa): <-- 确认私钥文件所保存的路径通常默认
/root/.ssh/id_dsa already exists.
Overwrite (y/n)? y <-- 若是已经存在了密钥对信息,是否进行覆盖
Enter passphrase (empty for no passphrase): <-- 确认是否给私钥设置密码信息(通常为空)
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_dsa.私钥
Your public key has been saved in /root/.ssh/id_dsa.pub.公钥
The key fingerprint is:
46:c8:21:b9:99:6e:0c:59:39:66:38:7a:97:29:51:76 root@m01
The key's randomart image is:
+--[ DSA 1024]----+
    |     o+oE      |
    |     +.B+ o    |
    |     . B Bo .   |
    |    . = B .       |
    |     . * S         |
    |     + .            |
    |       .             |
    |                     |
    |                     |
+-----------------+测试

私钥dsa  公钥dsa.pubui

第二个里程:将管理主机上公钥信息发送给被管理主机加密

给其余用户管理在地址前加用户名

ssh-copy-id -i /root/.ssh/id_dsa.pub 172.16.1.31
root@172.16.1.31's password:
Now try logging into the machine, with "ssh '172.16.1.31'", and check in:

.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

在非默认22端口是发送公钥会报错解决办法

在~/.ssh/下建立config文件 在文件中天剑port  [端口号] 就好了

第三个里程:进行远程管理测试(基于密钥的方式进行远程管理)
ssh 172.16.1.31 <-- 能够不用输入密码信息,就能登录成功
ssh 172.16.1.31 uptime <-- 能够不用登录到远程主机,就能够直接查看远程主机信息

# ssh -p17524 -l lianxizc  10.0.0.31< -- -p指定端口号 -l 指定用户

或者

  都没有默认端口22  默认用户root

05. SSH服务端配置文件信息说明(/etc/ssh/sshd_config)
    Port 52113 <- 修改ssh服务端口号信息

    

    ListenAddress 0.0.0.0 <- 主要做用提高网络链接安全性 

    默认监听全部网卡地址

    PS:监听地址只能配置为服务器网卡上拥有的地址

    PermitRootLogin no <- 是否容许root用户远程登陆

    企业中禁止root用户直接登录
    PermitEmptyPasswords no <- 是否容许空密码


    UseDNS no <- 是否进行DNS反向解析(提高ssh远程链接效率)


    GSSAPIAuthentication no <- 是否进行远程GSSAPI认证(提高ssh远程链接效率)

远程管理服务防范

 

 

10. sftp经常使用操做命令总结

    bye Quit sftp <-- 表示退出sftp传输模式


    cd path Change remote directory to 'path'   <-- 改变远程目录信息


    pwd Display remote working directory         <-- 显示远程主机当前目录信息


    lcd path Change local directory to 'path'       <-- 改变本地目录路径信息


    lpwd Print local working directory                  <-- 输出本地目录路径信息


    get [-P] remote-path [local-path                    Download file <-- 下载文件命令

    put [-P] local-path [remote-path]                    <-- 上传文件命令 Upload file 

 

 ssh部署 通常系统都有

服务端

 

客户端

进程端口

进程是否启动进程号

端口信息

思考:
01. 批量的分发公钥信息,而且采用免交互方式实现
02. 批量管理(ansible)

相关文章
相关标签/搜索